【问题标题】:How to read/write mp3 (origin) tags using jaudiotagger java如何使用 jaudiotagger java 读/写 mp3 (origin) 标签
【发布时间】:2015-08-02 11:15:09
【问题描述】:

我已经使用 jaudiotagger 成功读取/写入 mp3 标签 ARTIST、TITLE、COMPOSER。我还想读/写 PUBLISHER、ENCODED BY、AUTHOR URL、COPYRIGHT 和 SUBTITLE 等原始 mp3 标签。

这是我的java代码

AudioFile f = (MP3File) AudioFileIO.read(new File(filePath));
audioTag = f.getTag();
audioTag.setField(FieldKey.TITLE, "JAudioTagger");
f.commit();
audioTag.getFirst(FieldKey.TITLE);

谁能知道如何实现这些标签?

【问题讨论】:

    标签: java id3


    【解决方案1】:

    您列出的字段名称实际上不是 Mp3 字段,但是通过 FieldKey 类,我们将常用字段名称映射到正确的 mp3 帧,因此您可以按如下方式访问其中三个

    audioTag.setField(FieldKey.LABEL, "Publisher");
    audioTag.setField(FieldKey.URL_OFFICIAL_ARTIST_SITE, "AuthorUrl");
    audioTag.setField(FieldKey.SUBTITLE, "Subtitle");
    

    要写版权,你目前必须使用mp3特定接口来写版权(TCOP框架)

    例如

     Mp3File f = (Mp3File) AudioFileIO.read(new File(filePath));
     Tag audioTag = f.getTag();
     ID3v23Frame frame = new ID3v23Frame("TCOP");
     frame.setBody(new FrameBodyTCOP(TextEncoding.ISO_8859_1,"copyright"));
     tag.addFrame(frame);
     f.commit();
    

    对于encode by,我们使用相同的方法写入TENC帧。

     Mp3File f = (Mp3File) AudioFileIO.read(new File(filePath));
     Tag audioTag = f.getTag();
     ID3v23Frame frame = new ID3v23Frame("TENC");
     frame.setBody(new FrameBodyTENC(TextEncoding.ISO_8859_1,"encode by"));
     tag.addFrame(frame);
     f.commit();
    

    【讨论】:

    • 没有 jAudioTagger 有什么方法可以实现吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多