想从 url 获取歌曲的专辑封面,这是我迄今为止的尝试:
SongPath = "www.asd.com/music.mp3";
android.media.MediaMetadataRetriever mmr = new MediaMetadataRetriever();
try{
mmr.setDataSource(SongPath);
}catch(Exception e){}
byte [] data = mmr.getEmbeddedPicture();
if(data != null)
{
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
imageView.setImageBitmap(bitmap);
}
else
{
imageView.setImageResource(R.drawable.jak);
}
但是当运行这段代码时得到这个:call to get embedded picture failed
所以我研究了这个,有些人通过改变这部分来解决这个问题
mmr.setDataSource(SongPath);
对此
mmr.setDataSource(SongPath,new HashMap<String, String>());
我这样做但是当运行应用程序图像视图时什么都不显示并得到这个:SkImageDecoder::Factory returned null
注意:
我可以做到这一点的唯一方法是使用FFmpegMediaMetadataRetriever
库(类似MediaMetadataRetriever
)并且工作,但问题是库似乎很慢..平均需要 4.5 秒的时间来获取图片,当添加这个库时,apk 文件从 1.8mb 变为 24mb!这太大了!
所以世界上任何人都知道如何用好方法做到这一点?如果有人可以请帮助