Size von einem ID3v2 Frame rausfinden
-
Hallo !
In der Doku zu ID3v2 steht ja drin das das Byte direkt hinter der Framebezeichnung (zB.: "TALB") die Größe des Frames beinhaltet.
Ich öffne die Datei also mit CreateFile() und lese sie mit ReadFile() wie bekomme ich nun den Eintrag in ein INT- Wert oder was muss ich denn als Buffer in der Funktion ReadFile() eintragen ???
-
Wenn das Byte hinter der Zeichenkette "TALB" steht, dann ließt du mal zunächst bis zu dieser Stelle (also TALB inklusive 'B') und dann brauchst du nur noch ein weiteres Byte einlesen.
Aber ein Byte das die Größe eines Frames darstellt? Kann das richtig sein? Hat ein Frame nicht meisten eine Höhe und eine Breite?
-
Mein Tip : www.ID3Lib.org , das selber auszulesen ist viieeel zu umständlich.
-
Bei ID3v2 ist mit Frame nicht unbedingt ein Bild gemeint. Ein Frame ist einfach nur ne Art Container. Der "TALB"-Frame ist zum Beispiel für Album-Titel oder so da...
Für die Größe eines Frames sind laut docu 4 Bytes da.
Du musst also 4 Bytes einlesen (k.A. ob big- oder little-endian)int framesize=0; DWORD bytesRead=0; // Mal angenommen der FilePointer befindet sich genau vor der frame-size Angabe ReadFile(fHandle,&framesize,4,&bytesRead,NULL);...aber auf http://www.id3.org/ gibts auch jede Menge fertige Libs und die Docu...
-
Hallo ,
eine Frage , was genau meinst Du denn mit Frame?ist damit der Header des MP3-Files gemeint ??
oder meinst Du den ID3 Tag selbst ??Denn falls Du den ID3 Tag selbst meinst, glaube ich kaum dass der nur in 4Byte untergebracht ist ...
(4Byte -> 4 Zeichen, ich denke dort steht Interpret,Album, Songtitel usw...)Dagegen besteht der Header tatsächlich aus 4Byte, dort stehen Informationen über Bitrate/Samplingfrequenz/Copyright Bit usw... (Es ist kodiert, habe es schon mal probiert zu lesen ...)
Falls Du den Header meinst, findest Du hier eine nützliche Beschreibung:
http://sites.inka.de/sites/plagiats-home/mp3-header.htmlGruß
Skatepirat