【发布时间】:2017-03-01 02:51:21
【问题描述】:
想从 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!这实在是太大了!
所以世界上任何人都知道如何用好方法做到这一点?如果有人可以请帮助
【问题讨论】:
-
网址在哪里,把所有的东西都贴出来
-
@LutaayaHuzaifahIdris 如果您对此没有足够的了解,请不要来这里对我的问题投反对票。我的问题和描述很清楚,但您似乎太低了,无法理解:)
-
网址是什么意思?它是本地路径(即来自 sdcard)还是来自 Web?
-
@MdFazlaRabbiOpu 网络。我会改变我的问题
-
@user7415865,你是低级的,应该是URI而不是URL,修改一下
标签: java android mediametadataretriever