Wo wird die Klasse erzeugt Id3v2Tag?
In den Demos vermutlich im OnCreate der Form. Wenn der Tag erst ausgelesen wird, dann in den Edits einige Infos geändert werden bevor wieder gespeichert wird, kann man sich in der ButtonSaveClick-Methode das erneute auslesen sparen.
ABER: Der Code ist Murks! Ich hoffe mal nicht, dass das so in den Demos drinsteht!
(vermutlich nicht, schließlich wird der Stream nur zum lesen geöffnet.
)
Id3v2Tag.WriteToStream(Stream); sollte eigentlich NIE direkt verwendet werden. Denn dadurch wird nur der Tag in den Stream geschrieben. Einfach so. Dabei wird weder der bereits vorhandene Tag sauber entfernt, noch wird getestet, ob das neue Tag-Objekt da überhaupt reinpasst. Dadurch werden dann ggf. Audiodaten überschrieben, oder die Datei wird generell ungültig!
Zum Schreiben IMMER WriteTo
File(dateiname) benutzen.
Die Methode ist trotzdem public, weil man sie z.B. nutzen kann, wenn man eine neue Mp3-Datei erstellen will, z.B. bei Webradio-Aufnahme und dort am Anfang einen TId3v2-Tag erstellen möchte.
Edit: Also Den Stream rausschmeißen und stattdessen mit dem FileName arbeiten.
The angels have the phone box.