У меня есть функция, которая устанавливает растровое изображение (Music Cover) , связанное с музыкальным файлом (mp3, m4a, wav и т. Д.) на основе его "Album_ID"
public static void setAlbumCover(Context context, Bitmap bitmap, int album) {
Uri albumArtUri = Uri.parse("content://media/external/audio/albumart");
int lol = context.getContentResolver().delete(ContentUris.withAppendedId(albumArtUri, album), null, null);
Log.d("DELETED", String.valueOf(lol));
String dirName = Environment.getExternalStorageDirectory().getPath() + "/albumthumbs/";
String filename = dirName + Long.toString(Calendar.getInstance().getTimeInMillis());
File dir = new File(dirName);
if (!dir.exists()) {
dir.mkdirs();
}
File file = new File(filename);
FileOutputStream out = null;
try {
out = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (out != null) {
out.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
ContentValues values = new ContentValues();
values.put("album_id", album);
values.put("_data", filename);
ContentValues values2 = new ContentValues();
Uri num_updates = context.getContentResolver().insert(albumArtUri, values);
Log.d("NUM UPDATES", num_updates.toString());
}
проблема в том, что многие музыкальные файлы имеют одинаковый "ALBUM_ID", если я могу изменить эти Album_ID, у меня не будет одинакового изображения (Music Cover) на нескольких музыкальных файлах
я пробовалиспользуя следующий код. который я считаю неправильным и не могу найти способ сделать это
ContentValues values = new ContentValues();
values.put(MediaStore.Audio.Media.ALBUM_ID,7);
Uri mUri = musicResolver.insert(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, values);