MP3FileUtils, v0.6
Diese
Unit liest aus einer MP3-Datei alle (?) gängigen Informationen aus. Wie bei vielen anderen auch wird der ID3v1-Tag gelesen, fast alle Teile des ID3v2-Tags und diverse Informationen über die Datei ansich, wie z.B. Bitrate und Spieldauer.
Download:- Mp3FileUtils - Quellcode inkl. der Demoprogramme. Zip-Archiv, ca. 555kb
- Demos. - Komplilierte Demo-Programme zum Ausprobieren. Zip-Archiv, ca. 1.9mb
- Zum Thema Unsynchronisation: "Das Gewitterrätsel - Reloaded" (das war mal eine Aufwärmfrage bei einem Gewinnspiel in der Entwickler-Ecke) (Version 1, Version 2) - Wo war das Gewitter? (Tip: beide Varianten mit dem VLC abspielen und am Scrollbalken spielen )
Änderungen in 0.6: - Methoden SetRating und SetPersonalPlayCounter zusammengefasst zu SetRatingAndCounter. Der Code in den eigenen Anwendungen muss da ggf. angepasst werden
- Unterstützung von "Private Frames"
- Erkennung des VBRI-Header
- ein paar neue Genres in der Genre-Liste für ID3v1
- neue Methoden Get/SetUserText, GetAllUsertextFrames
- ID3v2Tag.ReadfromStream schneller: Tag wird zuerst komplett geladen, aus dem Memorystream dann die Einzelframes
- Bugfix: Korrektes Lesen von UTF8-kodierten Textframes mit Delphi 2009
- Bugfix: ExtendedHeader-Größe wurde falsch interpretiert
- Bugfix: User-definierte Textframes (TXXX) haben eine andere Struktur als normale Textframes
- Bugfix: Typ-Gemisch bei GetFrameLength behoben
Folgendes leisten die in dieser
Unit implementierten Klassen:
- TID3v1Tag:
- Lesen und Schreiben des ID3v1-Tags
- Unterscheidung von v1- und v1.1-Tags
- TMpegInfo:
- Lesen/Berechnen der MPEG-Informationen eines mp3-Files - z.B. Bitrate, Channelmode, Samplerate, vbr/cbr, Dauer
- Schnelles Ermitteln der Daten: Auch bei vbr wird die Spieldauer (fast) immer korrekt ermittelt, ohne die ganze Datei lesen zu müssen
- TID3v2Tag:
- Lesen und Schreiben des ID3v2-Tags
- Unterstützung aller existierenden Versionen: v2.2, v2.3 und v2.4
- Unterstützung der Standard-Frames wie Titel, Artist, Album
- Unterstützung einiger weiterer Text-Frames wie orig. Artist, Composer, Mediatype, Encoder
- Lesen und schreiben von Lyrics, Bildern, Bewertungen, URLs
- Lesen und schreiben beliebiger Daten
- Unterstützung von Unsynchronisation, GroupIDs und Datalength-Bytes
- Unterstützung von Unicode
- Unbekannte Frames (~ Informationsfelder) im Tag bleiben erhalten
Für Details verweise ich auf die beiliegende Dokumentation und die verschiedenen Demoprojekte.
Evtl. benötigte Zusatzkomponenten/Units:
Nur für Delphi 2007 oder früher. Verwendung kann in der Datei Config.inc geändert werden.
Für Fehlermeldungen oder Codeoptimierungen bin ich jederzeit offen - hier im Thread, per PN oder per Mail.
Edit: Text an die neue Version angepasst.
The angels have the phone box.