2

我正在尝试从视频文件中提取缩略图图像,用例是我想要每隔一秒的视频使用位图图像,我尝试使用 MediaMetadataRetriever,但问题是它返回相同的帧,无论时间是什么.

这是我尝试过的代码

MediaMetadataRetriever retriever = new MediaMetadataRetriever(); 
            retriever.setDataSource(PATH); 
             for(int i = 0; i< 10 ;i++) {

                Bitmap bmp = retriever.getFrameAtTime(i * 1000, MediaMetadataRetriever.OPTION_CLOSEST);
                imgList.add(bmp);
                System.out.println(imgList.size());

            }

是否有任何其他可行的解决方案来定期获取帧?

4

1 回答 1

3

MediaMetadataRetriever 的时间以微秒为单位指定。

要在 2 秒内获得帧,您必须调用:

Bitmap bmp = retriever.getFrameAtTime(2 * 1000000, MediaMetadataRetriever.OPTION_CLOSEST);

我发现无论这个非常精确的时间戳如何,MediaMetadataRetriever 都会在一秒钟内返回相同的帧,但是根据您的要求,它应该可以工作。

于 2012-08-10T17:02:33.380 回答