Я пытаюсь получить обложку альбома в формате MP3. Я думал, что лучший и самый чистый способ сделать это - использовать класс MediaMetadataRetriever. Но почему-то вызов метода getEmbeddedPicture не работает. Изображение не отображается, LogCat показывает ошибку:Получить встроенный mp3-файл вложенным искусством не удалось
04-29 18:36:19.520: E/MediaMetadataRetrieverJNI(25661): getEmbeddedPicture: Call to getEmbeddedPicture failed.
Это код, который не похоже на работу:
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
MediaMetadataRetriever mmdr = new MediaMetadataRetriever();
mmdr.setDataSource(path); //path of the MP3 file on SD Card
bites = mmdr.getEmbeddedPicture();
if(bites != null)
artBM = BitmapFactory.decodeByteArray(bites, 0, bites.length);
return null;
}
Я бегу это на устройстве с Android 4.2, поэтому не должно быть никаких проблем с MediaMetadataRetriever (требуется api lvl 10). Файлы, которые я тестировал, показывают изображение в проводнике Windows, поэтому, похоже, вложенное искусство. У кого-нибудь есть мысли по этому поводу?
Местный, но похоже, что это зависит от файла. В других MP3-файлах это показывает обложку альбома. –