Autor Beitrag
Alex_ITA01
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56

Win XP
D7 Prof
BeitragVerfasst: Di 07.10.03 10:22 
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
obbschtkuche
Gast
Erhaltene Danke: 1



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: 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 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.

_________________
We are, we were and will not be.
Alex_ITA01 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56

Win XP
D7 Prof
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: 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.
ausblenden 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.

_________________
We are, we were and will not be.
Alex_ITA01 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56

Win XP
D7 Prof
BeitragVerfasst: 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