Jaudiotagger getAll(FieldKey.COMMENT)产生一个0和1的数组

时间:2016-06-21 16:53:51

标签: java itunes id3 jaudiotagger

我在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来提取预期的评论。

1 个答案:

答案 0 :(得分:0)

这是因为iTunes iTunSMPB(也是iTunNORMiTunPGAP等)的额外字段存储在带有COMMENT帧键的注释字段中,但具有特定的子键。

您可以尝试过滤返回的TagField。