0

下面的第一个方法 (getMetadataTitle) 只是从 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!
}
4

1 回答 1

1

这是我的问题中完整的 putMetadataTitle() 方法。我按照问题 9707572 和答案中的建议下载了 MyID3_for_android jar 文件,如何获取和设置(更改)音频文件的 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();
    }
}
于 2020-07-28T17:08:31.950 回答