Was auf jeden Fall fehlt: Eine Abfrage, ob der ID3-Tag überhaupt vorhanden ist!
Denn bei Byte 128 vom Ende aus gesehen muss kein ID3v1-Tag beginnen. Er
kann da beginnen. Wenn dort keiner zu finden ist, gibt deine Funktion Datenmüll zurück, wahrscheinlich die letzten paar Bytes des (der) letzten MPEG-Frames.
Ein ID3v1Tag fängt mit 'TAG' an.
Weiter wäre Unterstützung des v1.1-Tags schön. Das ist eine kleine Erweiterung: Wenn das 29. Byte des Kommentarfeldes 0 ist, und das 30. ungleich 0, dann enthält dieses letzte Kommentar-Byte die Tracknummer.
Zitat von
Techcrawler:
Das ganze bezieht sich bisher nur auf ID3v1 Tags, die ID3v2´s kommen später mit rein.
Naja. ID3v2Tags sind ja auch nur unwesentlich komplizierter als ID3v1Tags