2016-06-21 38 views
1

Ich benutze JAudioTagger in meiner Java-Anwendung, um Metadaten aus einer MP3-Datei abzurufen. Ich bin in der Lage, alle Metadaten innerhalb der ID3 mit Ausnahme der "Kommentare" problemlos wiederherzustellen. Kommentare sind etwas, das ich aus iTunes hinzugefügt habe, indem ich den Titel ausgewählt habe, mit der rechten Maustaste darauf geklickt habe und Informationen erhalten habe. Fügen Sie die Kommentare hinzu und speichern Sie sie. Das Problem ist, bevor der eigentliche Kommentar ausgedruckt werden kann, das Kommentarfeld aus dem folgenden Code gibt mir ein Array von 0s und 1s der Größe 4, wobei Index 3 der eigentliche Kommentar und Indizes 0 bis 2 sind Array von 0s und 1s. Hier ist mein Code zu extrahieren/drucken Sie das Kommentarfeld:Jaudiotagger getAll (FieldKey.COMMENT) liefert ein Array von 0s und 1s

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 

Hier sind die jeweiligen Ausgänge:

// 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 

Beachten Sie, wie ein Array in der Ausgabe # 1 vor dem letzten Index, der erstellt wird Aktueller Kommentar. Bei weiteren Untersuchungen fand ich heraus, dass die Indizes 0 bis 2 genau dieselben sind wie das iTunSMPB Feld in der ID3, was auch immer das bedeuten soll. Wenn die Datei keinen Kommentar enthält, wird getAll(FieldKey.COMMENT) zu dem gleichen Array ohne den Kommentar der Größe 3 führen.

Jede Idee, warum die zusätzlichen 0s und 1s angehängt werden. Ich möchte den Index 3 nicht fest codieren, um den beabsichtigten Kommentar zu extrahieren.

Antwort

0

Dies ist, weil iTunes zusätzliche Felder wie iTunSMPB (auch iTunNORM, iTunPGAP ua) in einem Kommentarfeld mit dem COMMENT Rahmenschlüssel, aber mit bestimmten Unterschlüsseln gespeichert werden.

Sie könnten versuchen, die zurückgegebenen TagFields zu filtern.