我正在尝试将mp3文件中的专辑封面添加到我的应用程序中,但是它说:
调用getEmbeddedPicture失败。
在我的歌曲课程中,我设置了每首歌曲的插图:
metaDataRetriver = new MediaMetadataRetriever();
metaDataRetriver.setDataSource(path);
//path = /mnt/sdcard/chan_mp3/Titel.mp3
byte[] artwork = metaDataRetriver.getEmbeddedPicture();
在我的CustomAdapter中,我尝试显示封面:
// This code works perfectly fine: for each song I get artist and title
textView.setText(values.get(position).getArtist() + " - " + values.get(position).getTitle());
// This code doesn't work at all
byte[] artwork = values.get(position).getArtwork();
Bitmap bMap = BitmapFactory.decodeByteArray(artwork, 0, artwork.length);
imageView.setImageBitmap(bMap);
问题是我在哪里缺少什么?艺术品变量未正确初始化或我的请求是否错误?
还是有更好的方法来获取专辑封面和音乐信息?
最佳答案
我找到了另一种方法...我将为每首歌曲保存每个albumId,然后可以使用以下代码获取封面:
Uri sArtworkUri = Uri.parse("content://media/external/audio/albumart");
Uri uri = ContentUris.withAppendedId(sArtworkUri, Integer.valueOf(albumId));
ContentResolver res = context.getContentResolver();
InputStream in;
try {
in = res.openInputStream(uri);
artwork = BitmapFactory.decodeStream(in);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
关于android - 在Android音乐应用中显示专辑封面,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10381499/