Как отредактировать / вставить ALBUM_ID в MediaStore.Audio.Media или в аудиофайл? - PullRequest
0 голосов
/ 05 октября 2018

У меня есть функция, которая устанавливает растровое изображение (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);
...