首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓: JAudioTagger不会改变标签

安卓: JAudioTagger不会改变标签
EN

Stack Overflow用户
提问于 2016-04-11 00:18:35
回答 1查看 715关注 0票数 1

因此,我正在尝试在我的应用程序中编辑音乐文件的标签。这是代码

代码语言:javascript
复制
TagOptionSingleton.getInstance().setAndroid(true);
AudioFile f = AudioFileIO.read(sel);
Tag tag = f.getTag();
tag.setField(FieldKey.TITLE, "ABC");
f.commit();

我尝试了AudioFileIO.write(f)而不是f.commit(),但是我所做的更改没有反映在文件中。他们仍然拥有相同的旧数据。

我已经尝试了很多版本的JAudioTagger,但都没有成功。谁能帮帮我。提前感谢!!

EN

回答 1

Stack Overflow用户

发布于 2016-11-17 01:21:16

我知道这有点晚了,但是下面的方法对我来说是有效的(我对其他标记使用相同的框架

代码语言:javascript
复制
     public String getmp3TrackTitleTag(File SourceFile)
        throws Exception {
    String TrackTitle = null;
    try {
        MP3File musicFile = (MP3File) AudioFileIO.read(SourceFile);
        if (musicFile != null && musicFile.hasID3v2Tag()) {
            ID3v24Tag id3v24 = (ID3v24Tag) musicFile.getID3v2TagAsv24();
            TrackTitle = id3v24.getFirst(ID3v24Frames.FRAME_ID_TITLE);
        }
    } catch (CannotReadException | IOException | TagException
            | ReadOnlyFileException | InvalidAudioFrameException e5) {
        throw e5;
    }
    return TrackTitle;
}

并设置标题

代码语言:javascript
复制
      public String setmp3TrackTitleTag(File SourceFile, String strTrackTitle)
        throws Exception {
    String error = null;
    AbstractID3v2Tag v2tag = null;

    try {
        MP3File musicFile = (MP3File) AudioFileIO.read(SourceFile);
        if (musicFile != null && musicFile.hasID3v2Tag()) {
            v2tag = musicFile.getID3v2Tag();
            try {
                v2tag.setField(FieldKey.TITLE, strTrackTitle);
                musicFile.setTag(v2tag);
                musicFile.commit();
            } catch (KeyNotFoundException e) {
                e.printStackTrace();
                error = e.getMessage();
            } catch (FieldDataInvalidException e) {
                e.printStackTrace();
                error = e.getMessage();
            } catch (CannotWriteException e) {
                e.printStackTrace();
                error = e.getMessage();
            }
        }
    } catch (CannotReadException | IOException | TagException
            | ReadOnlyFileException | InvalidAudioFrameException e5) {

        throw e5;
    }
    return error;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36532253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档