JavaアプリケーションでJAudioTaggerを使用してmp3ファイルからメタデータを取得しています。私はID3内のすべてのメタデータを「コメント」以外の問題なしに検索することができます。コメントは、トラックを選択して右クリックして情報を取得することで、iTunesから追加したものです。コメントを追加して保存します。実際のコメントが出力される前に問題が発生しています。下のコードのコメントフィールドは、サイズ4の0と1の配列を返します。インデックス3は実際のコメントで、インデックス0〜2は0と1の配列です。ここでは/印刷コメントフィールドを抽出するために私のコードは次のとおりです。配列がある最後のインデックス前の出力#1で作成されたかJaudiotagger getAll(FieldKey.COMMENT)は0と1の配列を返します
// 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
注意:ここで
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
は、それぞれの出力です実際のコメント。さらに調査すると、0から2までのインデックスはID3のiTunSMPB
フィールドと全く同じであることがわかりました。ファイルにコメントがない場合、getAll(FieldKey.COMMENT)
はサイズ3のコメントなしで同じ配列になります。
余分な0と1が追加される理由は何か考えてください。私は目的のコメントを抽出するためにインデックス3をハードコードしたくない。