Как сохранить загруженный аудиофайл на Android Q с метаданными? - PullRequest
0 голосов
/ 02 мая 2020

Я пытаюсь сохранить загруженный файл с помощью ContentResolver для сохранения метаданных, таких как исполнитель, альбом и заголовок.

Первый вопрос: нужен ли мне файл с тегами ID3 или достаточно указать метаданные через MediaStore? Загружаемый файл MP3 не имеет тегов ID3.

Второй вопрос: я использую следующий код для сохранения файла mp3 в MediaStore:

ContentValues values = new ContentValues(7);
values.put(MediaStore.Audio.Media.TITLE, audiodata.getTitle());
values.put(MediaStore.Audio.Media.ARTIST, audiodata.getArtist());
values.put(MediaStore.Audio.Media.ALBUM, audiodata.getAlbum());
values.put(MediaStore.Audio.Media.DATE_ADDED, (int) (System.currentTimeMillis() / 1000));
values.put(MediaStore.Audio.Media.MIME_TYPE, "audio/mp3");
values.put(MediaStore.Audio.Media.DISPLAY_NAME, audiodata.getTitle() + ".mp3");
values.put(MediaStore.Audio.Media.RELATIVE_PATH, "Music/AudioConverter/");

Uri audiouri = getContentResolver().insert(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, values);
ParcelFileDescriptor file = null;
try {
    file = getContentResolver().openFileDescriptor(audiouri, "w");
    boolean writtenToDisk = writeResponseBodyToDisk(response.body(), file);
    btnSelectFile.setText("Datei wählen...");
    pbMain.setVisibility(View.GONE);
} catch (FileNotFoundException e) {
    e.printStackTrace();
    pbMain.setVisibility(View.GONE);
    Toast.makeText(MainActivity.this, e.getMessage(), Toast.LENGTH_LONG).show();
}

Если удалить расширение ".mp3" из отображаемого имени Musicplayer показывает мне нужного исполнителя, альбом и так далее. Но если я оставлю расширение, как показано выше, то метаданные не будут сохранены, кроме отображаемого имени. Что-то не так? Я что-то пропустил?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...