Как можно получить обложку альбома с URL
Хочу получить обложку альбома с 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 секунды требует выборки pic, и когда добавляется эта библиотека, файл apk от 1.8mb становится до 24mb! и это так огромно!
так кто-нибудь в мире знает, как это можно сделать с хорошей стороны? если кто-нибудь может помочь
1 ответ
Вы можете использовать Glide таким же образом, как и для File
: bumptech / glide # 699, если вы можете понять, как сделать это удаленно. Проблема в том, что вам все равно нужно скачать весь файл.mp3, что, по-моему, занимает 4-5 секунд. Я не совсем уверен насчет формата.mp3, но думаю, обложка альбома может быть в конце файла. По этой причине такой подход не предлагается (аналогично тому, как плохо загружать видео с http). Если вы все равно хотите пойти по этому пути, тогда .diskCacheStrategy(SOURCE)
при загрузке сначала сохранить файл, а затем написать собственный декодер для использования
Наилучший подход заключается в том, чтобы оформление альбома подавалось из отдельного файла, если вы размещаете mp3; или использовать общественный сервис для его получения. Смотрите любую программу загрузки обложек альбомов для возможных услуг.
Одно можно сказать наверняка: без протокола ничего не получится, добавьте префикс www.
с http://
или же https://
как необходимо.