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

Pau*_*aul 3 android

我正在Android上开发音乐播放器,但遇到一个我不知道为什么的错误。我认为我做对了,但是没有用。

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

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

我知道仅在setDataSource调用后才调用此方法,但确实做到了,但仍然遇到该错误(当然,我的歌曲中包含图片,并且我使用的是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));
Run Code Online (Sandbox Code Playgroud)

谢谢。

Laz*_*nja 5

以下应该工作:

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);
}
Run Code Online (Sandbox Code Playgroud)