AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Audio Werkzeuge Bibliothek (AWB)
Thema durchsuchen
Ansicht
Themen-Optionen

Audio Werkzeuge Bibliothek (AWB)

Ein Thema von Gausi · begonnen am 19. Mär 2012
Antwort Antwort
Benutzerbild von Gausi
Gausi
Registriert seit: 17. Jul 2005
Audio Werkzeuge Bibliothek (AWB)

Eine Sammlung von Klassen zum Auslesen von Audio-Informationen (Bitrate, Samplerate, Dauer, etc.) und Bearbeiten von Metatags (Interpret, Titel, Album, Cover-Art, ...) in verschiedenen Audio-Dateitypen.

Der Name ist ein direkte Anlehnung an die Audio Tools Library, die seit einigen Jahren nicht weiter gepflegt wird und einen ähnlichen Funktionsumfang, aber auch ein paar sehr unschöne Eigenschaften hat (besonders in bezug auf mp3-Dateien). Auch die Klassenstruktur ist hier etwas angenehmer, da (fast) alles von einer abstrakten Basisklasse abgeleitet wird. Das Auslesen der Audio-Informationen bei den exotischen Dateifomaten ist von dort (modifiziert) übernommen.

Features (Zusammenfassung)
  • Lesen und schreiben von ID3Tags in mp3-Dateien (ID3v1, v1.1, v2.2, v2.3, v2.4)
  • Lesen und schreiben von Metadaten in Flac-Dateien (Comments, Cover-Art)
  • Lesen und Schreiben von Metadaten in Ogg-Vorbis-Dateien (Comments)
  • Lesen und Schreiben von ApeV2-Tags (Comments, Cover Art, Binary Data) (z.B. in Dateien vom Typ Monkeys Audio, MusePack, OptimFrog, WavePack, TrueAudio)
  • Auswerten von Audiodaten (Bitrate, Samplerate, Dauer, Channels) in mp3, ogg, flac, ape, mpc, ofr, wv, tta
Das ganze mit voller Unicode-Unterstützung und ziemlich weitgehendem Zugriff auf die Tags, ohne das für Anfänger unnötig kompliziert zu machen. So können beliebige eigene Frames (bei id3) bzw. Keys (bei ogg, flac, ape) definiert werden. Cover können mehrere parallel gespeichert werden (front, back, usw.). In id3 und ape sind auch beliebige Binärdaten erlaubt.
Getestet mit Delphi 7 und Delphi 2009. Delphi 6 sollte auch noch laufen, bei Delphi 5 machen die Mp3FileUtils und einige UTF8/Unicode-Routinen Probleme.

Ein paar Hinweise zur Nutzung:

Die Unit AudioFiles.pas mit der Klasse TAudioFile

Die Superklasse. Folgender Code (leicht gekürzt) reicht, um einen Basis-Tagger für alle Formate zu erzeugen:
Delphi-Quellcode:
procedure TSimpleTagger.FileListBox1Change(Sender: TObject);
begin
    MainAudioFile := TAudioFile.Create(FileListBox1.FileName);
    EdtTitle.Text := MainAudioFile.Title;
    EdtArtist.Text := MainAudioFile.Artist;
    EdtAlbum.Text := MainAudioFile.Album;
    EdtGenre.Text := MainAudioFile.Genre;
    EdtYear.Text := MainAudioFile.Year;
    EdtTrack.Text := MainAudioFile.Track;
    Memo1.Clear;
    Memo1.Lines.Add(Format('Type: %s', [MainAudioFile.FileTypeName] ));
    Memo1.Lines.Add(Format('FileSize %d Bytes', [MainAudioFile.FileSize] ));
    Memo1.Lines.Add(Format('Duration %d sec', [MainAudioFile.Duration] ));
    Memo1.Lines.Add(Format('Btrate %d kBit/s',[MainAudioFile.Bitrate div 1000]));
    Memo1.Lines.Add(Format('Samplerate %d Hz', [MainAudioFile.Samplerate] ));
    Memo1.Lines.Add(Format('Channels: %d', [MainAudioFile.Channels] ));
end;

procedure TSimpleTagger.BtnSaveClick(Sender: TObject);
begin
    MainAudioFile.Title := EdtTitle.Text ;
    MainAudioFile.Artist := EdtArtist.Text;
    MainAudioFile.Album := EdtAlbum.Text ;
    MainAudioFile.Genre := EdtGenre.Text ;
    MainAudioFile.Year := EdtYear.Text ;
    MainAudioFile.Track := EdtTrack.Text ;
    MainAudioFile.UpdateFile;
end;
Die Klassen <*>Files.pas mit den Klassen T<*>File

Abgeleitet von der abstrakten Basisklasse TBaseAudioFile implementieren diese Klassen die Basismethoden und liefern - je nach Typ - weitere Informationen aus den Dateien. Die Klasse TAudioFile hat dafür die Properties <*>File , über die weiterführender Zugriff möglich ist. Das wird in der ExtendedDemo vorgeführt. Die Dateitypen, die ApeTags nutzen, sind dabei von einer Zwischenklasse TBaseApeFile in der Unit Apev2Tags.pas abgeleitet. Die Klasse TMp3File hat als Property auch Id3v2Tag , über den dann der ganze Quatsch möglich ist, der in den MP3FileUtils-Demos beschrieben wird (z.B. rekursive mp3-Dateien bauen).

Bei den Methoden T<*>File.ReadFromFile bzw. WriteToFile wird bzgl. der Meta-Tags (ID3, ApeV2, Ogg-Vorbis-Comments) folgendes angenommen:
  • ID3-Tags kommen NUR in mp3-Dateien vor. Einige der ApeV2Tag-Formate erlauben auch ID3-Tags. Wenn diese in solchen Dateien vorhanden sind, wird das zwar erkannt, die darin enthaltenen Informationen werden aber ignoriert. Wer diese lesen/schreiben möchte, muss dies selber über die (hier auch enthaltenen) Mp3FileUtils machen.
  • Ogg-Vorbis-Comments kommen in Ogg-Vorbis- und Flac-Dateien vor (eingebettet in den entsprechenden Container)
  • ApeV2Tags kommen nur in den exotischen Formaten (ape, mpc, ofr, wv, tta) vor. Gelegentlich kommen die auch in mp3-Dteien vor - wer das unbedingt braucht, kann das selbst über ein BaseApeFile machen

Lizenz

LGPL oder MPL

(Die Audio Tools Library, von denen hier auch einiges drin steckt, stehen nur unter der LGPL. Da ich auf eine Anfrage keine Antwort bekommen habe, das Projekt seit einigen Jahren nicht mehr weiter entwickelt wird, und der Anteil von ATL-Code nicht sonderlich groß ist, habe ich mir die Dual-Lizenz einfach so erlaubt. )
Angehängte Dateien
Dateityp: zip AudioWerkzeugeBibliothek.zip (123,3 KB, 44x aufgerufen)
The angels have the phone box.
 
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz