From deffc9937dac7d3dcafec2118194e15135d3d916 Mon Sep 17 00:00:00 2001 From: yexiaokang Date: Sun, 18 Jul 2021 16:40:40 +0800 Subject: [PATCH] fix deleteAllCache error in Android Plugin disable getMediaInfo auto changed video rotation --- .../com/example/video_compress/Utility.kt | 19 +++++-------------- .../video_compress/VideoCompressPlugin.kt | 9 ++++----- example/.gitignore | 2 ++ 3 files changed, 11 insertions(+), 19 deletions(-) diff --git a/android/src/main/kotlin/com/example/video_compress/Utility.kt b/android/src/main/kotlin/com/example/video_compress/Utility.kt index f5647097..51887527 100644 --- a/android/src/main/kotlin/com/example/video_compress/Utility.kt +++ b/android/src/main/kotlin/com/example/video_compress/Utility.kt @@ -4,7 +4,6 @@ import android.content.Context import android.graphics.Bitmap import android.media.MediaMetadataRetriever import android.net.Uri -import android.os.Build import io.flutter.plugin.common.MethodChannel import org.json.JSONObject import java.io.File @@ -43,20 +42,12 @@ class Utility(private val channelName: String) { val widthStr = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH) val heightStr = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT) val duration = java.lang.Long.parseLong(durationStr) - var width = java.lang.Long.parseLong(widthStr) - var height = java.lang.Long.parseLong(heightStr) + val width = java.lang.Long.parseLong(widthStr) + val height = java.lang.Long.parseLong(heightStr) val filesize = file.length() - val orientation = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { + val orientation = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_ROTATION) - } else { - null - } val ori = orientation?.toIntOrNull() - if (ori != null && isLandscapeImage(ori)) { - val tmp = width - width = height - height = tmp - } retriever.release() @@ -127,8 +118,8 @@ class Utility(private val channelName: String) { return fileName } - fun deleteAllCache(context: Context, result: MethodChannel.Result) { + fun deleteAllCache(context: Context): Boolean { val dir = context.getExternalFilesDir("video_compress") - result.success(dir?.deleteRecursively()) + return dir?.deleteRecursively() ?: false } } \ No newline at end of file diff --git a/android/src/main/kotlin/com/example/video_compress/VideoCompressPlugin.kt b/android/src/main/kotlin/com/example/video_compress/VideoCompressPlugin.kt index d8f43de1..d99d98e7 100644 --- a/android/src/main/kotlin/com/example/video_compress/VideoCompressPlugin.kt +++ b/android/src/main/kotlin/com/example/video_compress/VideoCompressPlugin.kt @@ -5,16 +5,15 @@ import android.net.Uri import android.util.Log import com.otaliastudios.transcoder.Transcoder import com.otaliastudios.transcoder.TranscoderListener +import com.otaliastudios.transcoder.internal.Logger import com.otaliastudios.transcoder.source.TrimDataSource import com.otaliastudios.transcoder.source.UriDataSource import com.otaliastudios.transcoder.strategy.DefaultAudioStrategy import com.otaliastudios.transcoder.strategy.DefaultVideoStrategy import com.otaliastudios.transcoder.strategy.RemoveTrackStrategy import com.otaliastudios.transcoder.strategy.TrackStrategy -import com.otaliastudios.transcoder.strategy.size.* import io.flutter.embedding.engine.plugins.FlutterPlugin import io.flutter.plugin.common.BinaryMessenger -import com.otaliastudios.transcoder.internal.Logger import io.flutter.plugin.common.MethodCall import io.flutter.plugin.common.MethodChannel import io.flutter.plugin.common.MethodChannel.MethodCallHandler @@ -65,7 +64,7 @@ class VideoCompressPlugin : MethodCallHandler, FlutterPlugin { result.success(Utility(channelName).getMediaInfoJson(context, path!!).toString()) } "deleteAllCache" -> { - result.success(Utility(channelName).deleteAllCache(context, result)); + result.success(Utility(channelName).deleteAllCache(context)) } "setLogLevel" -> { val logLevel = call.argument("logLevel")!! @@ -86,7 +85,7 @@ class VideoCompressPlugin : MethodCallHandler, FlutterPlugin { val frameRate = if (call.argument("frameRate")==null) 30 else call.argument("frameRate") val tempDir: String = context.getExternalFilesDir("video_compress")!!.absolutePath - val out = SimpleDateFormat("yyyy-MM-dd hh-mm-ss").format(Date()) + val out = SimpleDateFormat("yyyy-MM-dd_hh-mm-ss", Locale.US).format(Date()) val destPath: String = tempDir + File.separator + "VID_" + out + ".mp4" var videoTrackStrategy: TrackStrategy = DefaultVideoStrategy.atMost(340).build(); @@ -147,7 +146,7 @@ class VideoCompressPlugin : MethodCallHandler, FlutterPlugin { } - transcodeFuture = Transcoder.into(destPath!!) + transcodeFuture = Transcoder.into(destPath) .addDataSource(dataSource) .setAudioTrackStrategy(audioTrackStrategy) .setVideoTrackStrategy(videoTrackStrategy) diff --git a/example/.gitignore b/example/.gitignore index 07488ba6..ae55a1e2 100644 --- a/example/.gitignore +++ b/example/.gitignore @@ -22,6 +22,7 @@ **/doc/api/ .dart_tool/ .flutter-plugins +.flutter-plugins-dependencies .packages .pub-cache/ .pub/ @@ -61,6 +62,7 @@ **/ios/Flutter/flutter_assets/ **/ios/ServiceDefinitions.json **/ios/Runner/GeneratedPluginRegistrant.* +**/ios/Flutter/flutter_export_environment.sh # Exceptions to above rules. !**/ios/**/default.mode1v3