# ID3v2.4 Tag auslesen



## Kaniee (10. Apr 2012)

Hallo,

ich bin gerade dabei ein Programm zu schreiben, das mir eine MP3-Datei nach dem Titel und dem Interpret benennt. Mein Problem ist, dass ich mit folgendem Code ID3v2.3-Tags annähernd fehlerfrei auslesen kann, aber ich bei Dateien mit einem ID3v2.4-Tag einen Error bekomme.
Das Programm habe ich jetzt nur auf das Wesentliche gekürzt, bei dem der Fehler auftritt:

```
public static void main(String[] args) {
		MP3File mp3file = null;
		AbstractID3v2 id3v2tag;
		File mp3File = new File(Pfad);
		try {
			mp3file = new MP3File(mp3File);
		} catch (IOException e) {
			e.printStackTrace();
		} catch (TagException e) {
			e.printStackTrace();
		}
		id3v2tag = mp3file.getID3v2Tag();
		System.out.println(id3v2tag.getSongTitle());
		id3v2tag.setSongTitle("Neuer Titel");
		try {
			mp3file.save(Pfad);
		} catch (IOException e) {
			e.printStackTrace();
		} catch (TagException e) {
			e.printStackTrace();
		}
		System.out.println(id3v2tag.getSongTitle());
}
```

Der Error bei einer Datei mit ID3v2.4-Tag:
Exception in thread "main" java.lang.ClassCastException: org.farng.mp3.id3.ID3v2_3Frame cannot be cast to org.farng.mp3.id3.ID3v2_4Frame
	at org.farng.mp3.id3.ID3v2_4.write(Unknown Source)
	at org.farng.mp3.MP3File.save(Unknown Source)
	at org.farng.mp3.MP3File.save(Unknown Source)
	at Test1.main(Test1.java:25)

Noch ein paar Sachen die ich festellen konnte:
iTunes kann mir einen Interpret und einen Titel anzeigen, wobei ich bei der Ausgabe mit 
	
	
	
	





```
System.out.println(id3v2tag.getSongTitle());
```
 einen leeren String bekomme.
Die Datei wird mit jedem Run größer, und es entsteht immer noch eine .orginal-Datei.
Nach mehreren Versuchen hab ich gemerkt, dass die Datei nur noch bis ca Sekunde 10 abspielbar ist.

Die Libary die ich verwendet habe ist jid3lib von Java ID3 Tag Library.
Ich arbeite mit Eclipse Indigo auf Win7 Prof.

Kennt sich jmd mit der Libary aus? Oder hab ich einfach nur etwas kleines übersehen?

Ich hoffe mir kann jmd helfen.
Danke

Kaniee


----------



## FerFemNemBem (10. Apr 2012)

Halloechen,

ich hab schon viel in Richtung ID3-Tag-Java-Bibliotheken evaluiert. Die meissten (wie z.B. die von Dir verwendete Bibliothek) wird schon seit Ewigkeiten nicht mehr weiterentwickelt. Aktuell empfiehlt sich die Bibliothek Jaudiotagger: Subversion &mdash; Java.net. Der paultaylor entwickelt aktiv daran.

Probier mal damit.

Gruss, FFNB.


----------



## Kaniee (10. Apr 2012)

Ah, danke für die Info.
Nach ein paar Anlaufschwierigkeiten wegen dem Download, hab ich jetzt mal ein kleines Example nachgebastelt, funktioniert super (auch mit ID3v2.4) :toll:
Aber noch eine Frage habe ich: Kann ich die Ausgaben die gemacht werden irgentwie ausschalten?

Danke,
Kaniee


----------



## FerFemNemBem (10. Apr 2012)

Halloechen,

das logging kannst Du so ausschalten:


```
Logger.getLogger("org.jaudiotagger").setLevel(Level.OFF);
```

Gruss, FFNB.


----------



## Shakal (26. Jan 2013)

Wo schreibe ich denn den Logger hin ? 
er Haut mir immer noch diese ganzen Infos raus


----------



## Kaniee (27. Jan 2013)

so früh wie möglich. Am besten gleich am Anfang der main.


----------



## Shakal (27. Jan 2013)

Das habe ich und trotzdem kommt das ....


----------

