Android:如何使用MediaMetadataRetriever获取图像?

Android:如何使用MediaMetadataRetriever获取图像?,android,Android,我正在android上开发一个音乐播放器,我发现了一个bug,我不知道为什么。我认为我做得对,但它不起作用 我确实搜索了很多MediaMetadataRetriever,但我仍然不知道我的问题是什么 我使用MediaMetadataRetriever获取有关我的歌曲的信息。除了getEmbeddedPicture(),一切都正常。每当调用getEmbeddedPicture时,我都会收到此消息: 11-15 13:36:11.101:E/MediaMetadataRetrieverJNI(460

我正在android上开发一个音乐播放器,我发现了一个bug,我不知道为什么。我认为我做得对,但它不起作用

我确实搜索了很多MediaMetadataRetriever,但我仍然不知道我的问题是什么

我使用MediaMetadataRetriever获取有关我的歌曲的信息。除了getEmbeddedPicture(),一切都正常。每当调用getEmbeddedPicture时,我都会收到此消息: 11-15 13:36:11.101:E/MediaMetadataRetrieverJNI(460):getEmbeddedPicture:调用getEmbeddedPicture失败

我知道这个方法是在调用setDataSource之后才调用的,我做到了,但我仍然会遇到这个bug(当然,我的歌中有图像,我使用的是android 2.3.3)

代码如下:

mediaInfo.setDataSource(filePath);//filePath is correct.
byte[] img = mediaInfo.getEmbeddedPicture();//cause error
if (img != null)
    imgAlbum.setImageBitmap(BitmapFactory.decodeByteArray(img, 0,img.length));

谢谢。

以下功能应该可以使用:

MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(filePath);
byte[] art = retriever.getEmbeddedPicture();

if( art != null ){
    imgAlbum.setImageBitmap( BitmapFactory.decodeByteArray(art, 0, art.length));
}
else{
    imgAlbum.setImageResource(R.drawable.no_image);
}
尝试:


你好我用你的图书馆。但它看起来太大了!当添加此库时,我的apk文件从2mb变为26mb!有机会解决这个问题吗?
FFmpegMediaMetadataRetriever retriever = new FFmpegMediaMetadataRetriever();
retriever.setDataSource(filePath);
byte[] image = retriever.getEmbeddedPicture();
if (image != null) {
    imgAlbum.setImageBitmap(BitmapFactory.decodeByteArray(image, 0,image.length));
}
retriever.release();