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

这是我的java代码

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


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

最佳答案

您列出的字段名称实际上不是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();


对于编码,我们使用相同的方法写入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();

10-04 22:43