MediaMetadataRetriever getFrameAtTime:videoframe是一个空指针

Gon*_*era 5 media android frame 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);
Run Code Online (Sandbox Code Playgroud)

但问题是我得到:

MediaMetadataRetriever getFrameAtTime:videoframe是一个空指针

在logCat中.

我确定该视频与Android操作系统兼容并且MediaMetadataRetriever加载它,因为我可以在2.3.3操作系统版本中获得其元数据描述而没有问题.

我不知道为什么我不能得到框架,但如果我使用4.2操作系统版本,它的工作完美.我试图改变编解码器和视频的格式,但它不起作用......我想这是格式兼容性的问题,但我不知道我能做什么...

谢谢!!

Gon*_*era 2

实际上,我\xc2\xb4m 使用此外部库中的 FFmpegMediaMetadataRetriever 类,并且效果很好!

\n

  • 图书馆太大了!当我在我的包中编译它时..我的apk大小从2 MB跳到16 MB..有没有办法解决这个问题? (2认同)