2016-06-21 23 views
1

我在我的Java應用程序中使用JAudioTagger從一個mp3文件中檢索元數據。除了「註釋」之外,我能夠在ID3中檢索所有元數據,而不會出現任何問題。評論是我通過選擇曲目從iTunes添加的,點擊它並獲取信息。添加評論並保存。問題是可以打印出實際註釋之前,下面代碼中的註釋字段給了我一個大小爲4的0和1的數組,其中索引3是實際註釋,索引0到2是0和1的數組。這是我的代碼,以提取/打印註釋字段:Jaudiotagger getAll(FieldKey.COMMENT)產生一個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

這是因爲iTunes附加字段如iTunSMPB(也是iTunNORM,iTunPGAP等)存儲在具有COMMENT框架鍵的註釋字段中,但是具有特定的子鍵。

您可以嘗試過濾返回的TagFields。

相關問題