android - MediaMetadataRetriever getFrameAtTime : videoframe is a null pointer

标签 android frame media null-pointer

我正在尝试获取视频的帧,所以我像这样使用 MediaMetadataRetriever.getFrameAtTime():

    Uri directorio = Uri.parse("android.resource://com.extremeye/" + R.raw.video);
    media = new MediaMetadataRetriever();
    media.setDataSource(this, directorio);

    frame = (ImageView)findViewById(R.id.frame);
    Bitmap bmFrame = media.getFrameAtTime();
    frame.setImageBitmap(bmFrame);

但问题是我得到:

MediaMetadataRetriever getFrameAtTime: videoframe is a null pointer

在 logCat 中。

我确定视频与 android 操作系统兼容并且 MediaMetadataRetriever 加载它,因为我可以在 2.3.3 操作系统版本中毫无问题地获取它的元数据描述。

我不知道为什么我无法获取框架,但如果我使用 4.2 操作系统版本,它可以完美运行。我尝试更改视频的编解码器和格式,但它不起作用...我想这是格式兼容性问题,但我不知道我能做什么...

谢谢!!

最佳答案

实际上我使用的是 this external library 中的 FFmpegMediaMetadataRetriever 类效果很好!!

关于android - MediaMetadataRetriever getFrameAtTime : videoframe is a null pointer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17743988/

相关文章:

html - 为什么 html 框架在 Firefox 和 IE8 中的行为不同?

FFMpeg 不插入声音来转换媒体文件

android - 使用 gradle DSL 声明多模块项目中的 flavor 依赖性

android - 安卓模拟器的问题

java - 绘制时计算线条粗细

android - 如何将 MediaBrowserService 与小部件一起使用?

android - 从 SD 卡加载多个音频文件

java - 在Android中动态查找 fragment

Android:getExternalFilesDir(null) 时无法确保目录

ios - 移动坐标系原点