# MP3 Datei informationen bearbeiten



## Staromir (26. Mrz 2011)

Hallo zusammen,

Ich möchte mittels java eine MP3 Datei bearbeiten.
Ich habe herausgefunden, dass dies mittels id3-tag möglich ist.
Mein Problem ist nun, dass wenn ich Z.B.den Interpret mittels setArtist ändere, dies nur zur Laufzeit gültig ist.
Benutze ich eine falsche Methode?

Sonst hier noch ein Stück Code:


```
MP3File mp3 = new MP3File("D:\\musik\\....);
		if (mp3.hasID3v1Tag()) 
					{
	                                 ID3v1 v1tag = mp3.getID3v1Tag(); 
						v1tag.setArtist("Artist"); 
			         	}
```

Ich hoffe auf baldige Antwort und danke schon im vorraus.


----------



## hdi (26. Mrz 2011)

Laut API musst du noch ein save() aufrufen:

MP3File (Jaudiotagger Developer API v2.0.0)


----------



## Staromir (26. Mrz 2011)

Danke vielmal für die schnelle Antwort, ich habe nun ein mp3.save() eingebaut.
Jedoch ändert sich der Dateiname immer noch nicht.
Wenn ich jedoch während dem Programm den Artist via getArtist() aufrufe, bekomme ich den gesetzen Artist.?


----------



## XHelp (26. Mrz 2011)

Staromir hat gesagt.:


> Jedoch ändert sich der Dateiname immer noch nicht.



Warum soll sich denn der Name der Datei auch ändern? :bahnhof:


----------



## hdi (26. Mrz 2011)

> Wenn ich jedoch während dem Programm den Artist via getArtist() aufrufe, bekomme ich den gesetzen Artist.?


Die während der Laufzeit gespeicherten Daten müssen noch lange nicht den Daten auf der Festplatte entsprechen. Irgendwie musst du die Änderungen persistent machen, ich kenne mich mit dieser API nicht aus aber ich dachte dass save() das tut. Wenn es den Tag nicht ändert kuck dich mal nach weiteren Methoden dieser Klasse um.


----------



## Staromir (26. Mrz 2011)

Danke, ich werde mich einmal umsehen.


----------



## XHelp (26. Mrz 2011)

Was verwendest du überhaupt für eine Lib? In jaudiotagger gibt es überhaupt keine Klasse namens 
	
	
	
	





```
ID3v1
```

Nachtrag: wie merkst du, dass nichts geschrieben wird? Mit save wird alles wie gewollte geschrieben. Es könnte aber auch sein, dass die ursprünglichen Informationen als ID3v2-Tag vorliegen, und wenn ud ID3v1 Tag setzt, wird er zwar korrekt gesetzt, aber eben der v2 Tag (der immer noch da ist) von deinem Abspiel/Test/Ausles/Wasauchimmer-Programm bevorzugt


----------



## Staromir (26. Mrz 2011)

ich benutze id3 Tag Library, jetzt denke ich aber ,dass es besser gewesen wäre wenn ich jaudiotagger genommen hätte.

Mist, an dies habe ich gar nicht gedacht.Es ist einfach so, dass der Artist bei der MP3 sich nicht verändert hat.Beziehungsweise nicht "Artist" als Artist steht.


----------



## XHelp (26. Mrz 2011)

Such dir einfach ne Software die ALLE Tags anzeigt (Winamp kann das z.B.), dann siehst du ob es hinhaut oder nicht... oder lösche eben alle anderen Tags, oder versuche v2-Tags zu ändern oder oder oder


----------



## Staromir (28. Mrz 2011)

Hallo da bin ich wider. 
Ich habe nun mein Programm auf v2tags geändert was jetzt nun auch etwas bewirkt.
Jedoch steht nun anstatt Artist : 牡楴瑳 
Wie kann ich das beheben? Wahrscheinlich sehe ich den Wald wider vor Lauter Bäumen nicht. 



```
MP3File mp3 = new MP3File("D:\\musik\\....);	
if (mp3.hasID3v2Tag()) 
					{ 
						AbstractID3v2 v2tag = mp3.getID3v2Tag();
						v2tag.setLeadArtist("artist"); 
	                                        mp3.save();
					}
```


----------

