Entwickler-Ecke
Multimedia / Grafik - MP3-ID3Tag
Alex_ITA01 - Di 07.10.03 10:22
Titel: MP3-ID3Tag
hallo erstmal,
ich habe den kompletten Id3Tag plus die verschiedenen Versionen (Id3v1 Informationen,Id3v2 Informationen,Xing Header und alle das zeug) ausgelesen aus der Mp3 aber kann ich auch die einzelnen Sachen (Titel,Artist...) ändern und wieder in die Mp3 schreiben das man es wieder ordentlich auslesen kann?
danke alex
Anonymous - Di 07.10.03 14:14
wenn du weist wie man es liest, sollte es doch eigentlich auch kein Problem sein, es zu schreiben. oder benutzt du eine komponente?
Gausi - Di 07.10.03 20:33
hehe, ne, ich glaube, er benutzt keine Komponente, nur ne "einfache" Funktion...
Klar kann man auch neue Sachen da rein schreiben und/oder editieren. Beim id3v1Tag sollte das wirklich kein Problem sein. Da kann man die Lese-Routine schnell in eine Schreib-Routine ändern.
Bei Version 2 is das etwas komplizierter, weil man unter Umständen die komplette Datei neu schreiben muss, nicht nur die letzten 128 Byte. Ausserdem muss man sich darum kümmern, wie groß die einzelnen Frames sind, und wie groß der Tag insgesamt wird, was mit den unbekannten Frames passieren soll etc.
Den Aufbau des id3v2Tags kannst du nachlesen unter
http://www.id3.org/id3v2.4.0-structure.txt (da hab ich auch die Informationen her). In Kombination mit dem Code, den du scheinbar schon verwendest, sollte es nicht zu schwer sein, den neuen Tag zu schreiben. Ein Kinderspiel wird das aber auch nicht.
Alex_ITA01 - Mi 08.10.03 09:14
Titel: jo gausi
gausi du verstehst mich,
ich hatte ja den ganzen quelltext von dir für das auslesen der mp3 und das geht auch alles einmandfrei (hab es in ne dll gepackt) jetzt will ich aber das ich noch ne dll habe in der die schreibroutinen drin sind zum neuen editeren der mp3. du hast net zufällig ein source oder so?
Gausi - Mi 08.10.03 10:15
ne, da hab ich noch keinen Source. Den einzigen source zum tagSchreiben, den ich habe, ist eher ne verarsche: Ich schreibe in den v2 Tag einer mp3 eine andere mp3 rein. Das gibt ne schöne rekursive Dateistruktur ;-), und abgespielt wird immer nur die Main-mp3...
Im Ernst: ein paar Hilfestellungen:
1. Lese den v2 Tag ein. Und speichere die einzelnen Frames so, dass du schnell rausfinden kannst, was das für ein Frame ist, z.b.
Delphi-Quelltext
1: 2: 3: 4:
| TFrame = record ID: string[4]; data: array of byte; end; |
2. Berechne die Werte, die in den jeweils neuen Frame-Header reinkommen (Wichtig: die Größe!), d.h. z.b. die Stringlänge
3. Kopiere alle Frames des alten Tags in den neuen, bis auf die, die geändert wurden, erkennbar an den IDs
4. Berechne die Daten für den Tag-Header, hier wieder besonders wichtig: die Größe.
5. Schreibe die Datei neu (nur nötig, wenn der neue Header größer ist als der alte, andernfalls gehts wohl schneller...), zuerst den Tag-Header, dann die ganzen Frames, dann den Rest der Datei.
Ist halt n bissel Friemelei.
Wichtig: Bei reinen Text-Frames brauchst du bei den ganzen Flags praktisch nichts zu beachten. Willst du Binäre Daten (Bilder etc.) reinschreiben, solltest du die Daten vorher unsynchronisieren, und das entsprechende Flag setzen.
Alex_ITA01 - Mi 08.10.03 10:25
Titel: danke
danke für die tips werde ich mal probieren wenn ich zeit habe muss nämlich auch mal auf arbeit arbeiten
danke alex
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!