使用元数据检索器从视频中获取位图在 Android 10 中需要花费太多时间,但在 Android 10 以下效果很好。仅在 Android 10 中面临此问题。
getFrameAtTime
和 getScaledFrameAtTime
在 Android 10 中都很慢。
这里我添加了用于获取位图形式视频的代码
Bitmap bitmap = null;
MediaMetadataRetriever mediaMetadataRetriever = new MediaMetadataRetriever();
mediaMetadataRetriever.setDataSource(context, videoUri);
bitmap = mediaMetadataRetriever.getScaledFrameAtTime( ONE_SECOND_IN_MILLI, MediaMetadataRetriever.OPTION_CLOSEST_SYNC,THUMB_WIDTH,THUMB_HEIGHT);
构建gradle sdk版本
compileSdkVersion = 28
def nativeBuildSystem = 'none'
defaultConfig {
applicationId "com.example.example"
minSdkVersion 26
targetSdkVersion 28
...
}
最佳答案
Android P的bug,比如华为P30,最新已经修复。 Uri 转换为文件是一种有效的方法
关于android - 来自 MediaMetadataRetriever 的 getScaledFrameAtTime 太慢而无法在 Android 10 中返回位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58388606/