I want to know how to display album art for albums using android.provider.MediaStore.Audio.Albums.ALBUM.Album_Art
.
I am extracting metadata from the path by using the following code which works fine for songs, but I just don't know how to display album art for albums/artists in general.
MediaMetadataRetriever mmr = new MediaMetadataRetriever();
byte[] rawArt = null;
float ht_px = TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP, 200, getResources().getDisplayMetrics());
float wt_px = TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP, 200, getResources().getDisplayMetrics());
BitmapFactory.Options bfo=new BitmapFactory.Options();
try {
mmr.setDataSource(songdetails.get(swapnumber).Path);
StackBlurManager _stackBlurManager;
rawArt = mmr.getEmbeddedPicture();
if ( rawArt != null) {
bitmap2 = BitmapFactory.decodeByteArray(rawArt, 0, rawArt.length, bfo);
bitmap3 = Bitmap.createScaledBitmap(bitmap2, (int) ht_px, (int) wt_px, true);
//...
First I would recommend having a look at:
This code snippet may help get you going in the right direction.
// Query URI
Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
// Columns
String[] select = {
MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.ARTIST,
MediaStore.Audio.Media.ALBUM,
MediaStore.Audio.Media.TITLE,
MediaStore.Audio.Media.DATA,
MediaStore.Audio.Media.ALBUM_ID,
MediaStore.Audio.Media.DURATION
};
// Where
String where = MediaStore.Audio.Media.IS_MUSIC + "=1";
// Perform the query
Cursor cursor = context.getContentResolver().query(uri, cursor_cols, where, null, null);
if (cursor.moveToFirst()) {
while (!cursor.isAfterLast()) {
long albumId = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM_ID));
String artist = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST));
String album = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM));
String track = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));
String data = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
int duration = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION));
final Uri ART_CONTENT_URI = Uri.parse("content://media/external/audio/albumart");
Uri albumArtUri = ContentUris.withAppendedId(ART_CONTENT_URI, albumId);
Bitmap bitmap = null;
try {
bitmap = MediaStore.Images.Media.getBitmap(context.getContentResolver(), albumArtUri);
} catch (Exception exception) {
// log error
}
cursor.moveToNext();
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With