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.
Being smart will count for nothing if you don't make the world better. You have to use your smarts to count for something, to serve life, not death.