java - 如何使用 jaudiotagger java 读取/写入 mp3(原始)标签

标签 java id3

我已经使用 jaudiotagger 成功读取/写入 mp3 标签 ARTIST、TITLE、COMPOSER。我还想读取/写入原始 mp3 标签,例如发布者、编码者、作者 URL、版权和字幕。

这是我的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 特定接口(interface)来写入版权(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();

关于java - 如何使用 jaudiotagger java 读取/写入 mp3(原始)标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31771308/

相关文章:

java - 在 JScrollPane 上停用 ScrollOnExpand

java - 我将如何去做这件事——也许是进程树?

c++ - 无法使用 id3 库链接示例程序

java - 在最后一行输入数据时自动在 jTable 中插入新行

java - 动态创建 JOOQ 查询

integer - 为什么 MP3 文件使用同步安全整数?

c# - TagLib 锐利不编辑艺术家

python - 诱变剂和 id3 标签 - 字符编码困惑

ios - ID3 通过音频流?

java - 使用 SharedPreferences 保存字符串