private static Bitmap getAlbumArt(String path) {
Bitmap bitmap = null;
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
try {
retriever.setDataSource(path);
byte[] art = retriever.getEmbeddedPicture();
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 3;
if (art != null) {
bitmap= BitmapFactory.decodeByteArray(art, 0, art.length, options);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
retriever.release();
} catch (Exception e2) {
e2.printStackTrace();
}
}
return bitmap;
}
Uso para pegar a arte das capas de musicas, de um celular mas como a lista de musicas de uma pessoa pode ser grande ele começa a travar.
Provavelmente porque as capas que são carregadas vem direto da musica elas não são salvas em miniatura “em cache”
No debug toda vez que da uma travada da uma falha de conexao do
byte[] art=retriever.getEmbeddedPicture();