我在Java应用程序中使用JAudioTagger从mp3文件中检索元数据。我可以在ID3中检索所有元数据而不会出现问题,除了“注释”。评论是我通过选择曲目从iTunes添加的内容,右键单击它并获取信息。添加评论并保存。问题是在打开实际注释之前,下面代码中的注释字段给出了一个0和1的数组4,其中索引3是实际注释,索引0到2是0和1的数组。这是我提取/打印注释字段的代码:
Tag tag = null;
file = /some/path/file-name.mp3
System.out.println("tag.getAll(FieldKey.COMMENT)-->" + tag.getAll(FieldKey.COMMENT)); // Check output 1 below
System.out.println("tag.getFirst ? "+tag.getFirst(FieldKey.COMMENT) ); // output 2 below
以下是各自的产出:
// Output for System.out 1
[0,
00000368 000002C0 00003670 00003005 0001DC53 0001DC53 00008489 00008566 000378AC 00038CE0,
00000000 00000210 00000A8D 0000000000E16863 00000000
00A37EB2 00000000 00000000 00000000 00000000 00000000 00000000,
This is a comment ]
// Output for System.out 2
0
注意如何在最后一个索引(即实际注释)之前的输出#1中创建数组。在进一步调查中,我发现索引0到2与ID3中的iTunSMPB
字段完全相同,无论这意味着什么。如果文件没有评论,那么getAll(FieldKey.COMMENT)
将导致相同的数组而没有大小为3的评论。
任何想法为什么附加额外的0和1。我不希望硬编码索引3来提取预期的评论。
答案 0 :(得分:0)
这是因为iTunes iTunSMPB
(也是iTunNORM
,iTunPGAP
等)的额外字段存储在带有COMMENT帧键的注释字段中,但具有特定的子键。
您可以尝试过滤返回的TagField。