2016-03-20 19 views
0

Also, ich versuche (oder gerade erst begonnen) Musik-Player von Grund auf neu zu schreiben (beginnend mit MP3-Format) und damit habe ich eine Frage über das ID3v1/1.1-Tag.
Nehmen wir ein Feld aus dem Tag, sagen wir, Songtitel. Es hat 30 Zeichen (Bytes) und es gibt meine Frage, ist '\ 0' bereits darin gezählt oder muss ich ein weiteres Byte für null hinzufügen?ID3v1-Tag im MP3-Format

Übrigens, ich weiß, dass einige Leute vielleicht sagen wollen, "warum würdest du das Rad neu erfinden, es gibt bereits MP3-Decoder". Ich möchte etwas lernen, was ich nie gemacht habe, deshalb.

Antwort

0

Wie alle Künstler haben keine 30 Zeichen langen Namen gesagt wird, dass, wenn es einige Bytes verlassen, nachdem die Information in dem Feld eingegeben wird, sollten diese Bytes 0.

mit dem binären Wert fille sein

Siehe ID3v1-Spec.

Ich würde sagen, das gleiche Prinzip kann auf die anderen Felder (Titel, Album, ...) angewendet werden.

+0

Ich habe gelesen, dass vor der Buchung, das Zitat nur besagt, dass, wenn es weniger Zeichen als ein Feld hat "zugeteilt", Ruhe wird mit Null gefüllt werden. Ich hätte meine Frage besser angeben sollen: Gibt es eine Möglichkeit, dass Titel wird mit allen 30 Zeichen (anders als Null) oder nur 29 mit zuletzt reserviert für null gefüllt werden? –

+0

Wenn Sie mehr als 30 Zeichen haben -> trimmen Sie sie auf 30 Zeichen. Wenn Sie 30 Zeichen haben, müssen Sie ihnen nicht entkommen. Wenn du weniger als 30 Charaktere hast -> entkomme ihnen. –

+0

Die Felder können mit 30 tatsächlichen Zeichen gefüllt werden und sind dann nicht 0-terminiert. Beachten Sie außerdem, dass nicht alle Dateien der Spezifikation entsprechen - oft werden die Felder mit anstelle von 0 aufgefüllt. Kurz gesagt, müssen Sie die Strings selbst mit 0 enden lassen. –