Как записать метаданные в mp3-файл из java-приложения Android Studio?

Первый метод ниже (getMetadataTitle) просто извлекает метаданные Title из mp3-файла. Это работает нормально. Как записать или обновить метаданные заголовка в mp3-файле, см. второй метод (putMetadataTitle) ниже?

private String getMetadataTitle(Context myContext, Uri myMp3) {
    MediaMetadataRetriever retriever;
    String title = null;
    try {
        retriever = new MediaMetadataRetriever();
        retriever.setDataSource(myContext, myMp3);
        title = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return title;
}

private void putMetadataTitle(String newTitle, Uri myMp3) {
// need help here!
}

person MikeR    schedule 25.07.2020    source источник


Ответы (1)


Вот завершенный метод putMetadataTitle() из моего вопроса. Я загрузил файл jar MyID3_for_android, как было предложено в вопросе 9707572, и ответил, Как получить и установить (изменить) ID3-тег (метаданные) аудиофайлов?.

private void putMetadataTitle(String newTitle, Uri myUri) {
    File myMp3 = new File(myUri.getPath());
    MusicMetadataSet mySet = null;
    MusicMetadata myMetadata = new MusicMetadata("name");
    try {
        mySet = new MyID3().read(myMp3);
        if (mySet == null) {
            Log.i("NULL", "NULL");
        } else {
            myMetadata.setSongTitle(newTitle);
            new MyID3().update(myMp3, mySet, myMetadata);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}
person MikeR    schedule 28.07.2020