Как можно получить обложку альбома с 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:// как необходимо.

Другие вопросы по тегам