getScaledFrameAtTime()不是100%返回输入大小的位图

时间:2018-04-06 01:24:52

标签: android

在API 27上,我尝试使用getScaledFrameAtTime()从所选视频中提取帧,其中一个是一系列线程/可运行的。这是代码片段(每个时间戳在一个线程中):

mediaMetadataRetriever.setDataSource(uri);
bitmap = mediaMetadataRetriever.getScaledFrameAtTime(timeStamp * 1000,
                        MediaMetadataRetriever.OPTION_CLOSEST,
                        224,
                        224);

但有时候我得到的宽度只有126的位图 发生了什么?如何预防和处理它?<​​/ p>

1 个答案:

答案 0 :(得分:0)

  

如果可能的话,此方法通过考虑给定的选项来找到靠近给定时间位置的代表性帧,并以与源相同的宽高比将其作为位图返回,同时对其进行缩放,以使其适合dst_width的所需大小dst_height。

https://developer.android.com/reference/android/media/MediaMetadataRetriever#getScaledFrameAtTime(long,%20int,%20int,%20int)

它尝试使用dst_widthdst_height作为最大值来保持原稿的长宽比。