Я пытаюсь получить обложку альбома из файла MP3, но следующий код не работает.Всякий раз, когда приложение запускается, оно отображает поле серого цвета (проверьте код в блоке try / catch).
public class MainActivity extends AppCompatActivity {
MediaMetadataRetriever metaRetriver;
byte[] art;
ImageView album_art;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getInit();
Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
Cursor cursor = getContentResolver().query(uri, null, null, null, null);
cursor.moveToFirst();
String url = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));
cursor.close();
metaRetriver = new MediaMetadataRetriever();
metaRetriver.setDataSource(url);
try {
art = metaRetriver.getEmbeddedPicture();
Bitmap songImage = BitmapFactory
.decodeByteArray(art, 0, art.length);
album_art.setImageBitmap(songImage);
} catch (Exception e) {
album_art.setBackgroundColor(Color.GRAY);
}
}
public void getInit() {
album_art = (ImageView) findViewById(R.id.album_art);
}
}
Я также пытался использовать курсор для получения обложки альбома, но это не работает.