Próbuję uzyskać okładkę albumu pliku MP3. Myślałem, że najlepszym i najczystszym sposobem na to jest użycie klasy MediaMetadataRetriever. Ale z jakiegoś powodu wywoływanie metody getEmbeddedPicture nie działa. Obraz nie jest wyświetlane, LogCat pokazuje błąd:Wbudowana sztuka osadzania pliku mp3 nie powiodła się
04-29 18:36:19.520: E/MediaMetadataRetrieverJNI(25661): getEmbeddedPicture: Call to getEmbeddedPicture failed.
Jest to kod, który nie wydaje się działać:
@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;
}
Używam go na urządzeniu z Androidem 4.2 więc nie powinno być problemu z MediaMetadataRetriever (wymaga api lvl 10). Przetestowane przeze mnie pliki pokazują obraz w Eksploratorze Windows, więc wydaje się, że jest on osadzony w grafice. Ktoś ma jakieś przemyślenia na ten temat?
Lokalnie, ale wygląda na to, że zależy to od pliku. W innych plikach MP3 pokazuje okładkę albumu. –