Informationen in ID3Tag verändern?
lima-city → Forum → Programmiersprachen → Delphi & Pascal
album
artist
buffer
code
euro
file
folk
funken
fusion
genre
http
jazzen
pop
punk
rock
string
tag
techno
url
vorgefertigte komponente
-
Ahoi an alle!
Ich schreibe gerade an einem Programm, dass mit helfen soll meine .mp3 datein zu verwalten. Dazu will ich auf schnelle Art und Weise den Interpreten, Titel, tag/album">Album und den ganzen bla bla ändern. Bloss jetzt ist die Frage wie mach ich das?
Ich habe bereits einen ganz guten Quellcode gefunden der es mir erlaubt den ID3Tag auszulesen, allerdings weiß ich jetzt immer noch nicht wie ich ihn benutze um die jeweiligen Informationen in den Tag reinzuschreiben. Kann mir jemand vielleicht weiterhelfen, vorallem da ich den Code nicht zu 100% versteh.
Vielen Dank schonmal für eure Hilfe und hier kommt erstmal der Code:
type TID3Tag = record ID: string[3]; Titel: string[30]; Artist: string[30]; Album: string[30]; Year: string[4]; Comment: string[30]; Genre: Byte; end; const Genres : array[0..146] of string = ('Blues','Classic Rock','Country','Dance','Disco','Funk','Grunge', 'Hip- Hop','Jazz','Metal','New Age','Oldies','Other','Pop','R&B', 'Rap','Reggae','Rock','Techno','Industrial','Alternative','Ska', 'Death Metal','Pranks','Soundtrack','Euro-Techno','Ambient', 'Trip-Hop','Vocal','Jazz+Funk','Fusion','Trance','Classical', 'Instrumental','Acid','House','Game','Sound Clip','Gospel','Noise', 'Alternative Rock','Bass','Punk','Space','Meditative','Instrumental Pop', 'Instrumental Rock','Ethnic','Gothic','Darkwave','Techno-Industrial','Electronic', 'Pop-Folk','Eurodance','Dream','Southern Rock','Comedy','Cult','Gangsta', 'Top 40','Christian Rap','Pop/Funk','Jungle','Native US','Cabaret','New Wave', 'Psychadelic','Rave','Showtunes','Trailer','Lo-Fi','Tribal','Acid Punk', 'Acid Jazz','Polka','Retro','Musical','Rock & Roll','Hard Rock','Folk', 'Folk-Rock','National Folk','Swing','Fast Fusion','Bebob','Latin','Revival', 'Celtic','Bluegrass','Avantgarde','Gothic Rock','Progressive Rock', 'Psychedelic Rock','Symphonic Rock','Slow Rock','Big Band','Chorus', 'Easy Listening','Acoustic','Humour','Speech','Chanson','Opera', 'Chamber Music','Sonata','Symphony','Booty Bass','Primus','Porn Groove', 'Satire','Slow Jam','Club','Tango','Samba','Folklore','Ballad', 'Power Ballad','Rhytmic Soul','Freestyle','Duet','Punk Rock','Drum Solo', 'Acapella','Euro-House','Dance Hall','Goa','Drum & Bass','Club-House', 'Hardcore','Terror','Indie','BritPop','Negerpunk','Polsk Punk','Beat', 'Christian Gangsta','Heavy Metal','Black Metal','Crossover','Contemporary C', 'Christian Rock','Merengue','Salsa','Thrash Metal','Anime','JPop','SynthPop'); var Form1: TForm1; implementation {$R *.dfm} function readID3Tag(FileName: string): TID3Tag; var FS: TFileStream; Buffer: array [1..128] of Char; begin FS := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite); try FS.Seek(-128, soFromEnd); FS.Read(Buffer, 128); with Result do begin ID := Copy(Buffer, 1, 3); Titel := Copy(Buffer, 4, 30); Artist := Copy(Buffer, 34, 30); Album := Copy(Buffer, 64, 30); Year := Copy(Buffer, 94, 4); Comment := Copy(Buffer, 98, 30); Genre := Ord(Buffer[128]); end; finally FS.Free; end; end; procedure TfrmMain.Button1Click(Sender: TObject); begin if OpenDialog1.Execute then begin with readID3Tag(OpenDialog1.FileName) do begin LlbID.Caption := 'ID: ' + ID; LlbTitel.Caption := 'Titel: ' + Titel; LlbArtist.Caption := 'Artist: ' + Artist; LlbAlbum.Caption := 'Album: ' + Album; LlbYear.Caption := 'Year: ' + Year; LlbComment.Caption := 'Comment: ' + Comment; if (Genre >= 0) and (Genre <=146) then LlbGenre.Caption := 'Genre: ' + Genres[Genre] else LlbGenre.Caption := 'N/A'; end; end; end;
P.S.: Ich muss nicht unbediengt diesen Code verwenden, bin da ziemlich flexible. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich würde mir einfach auf einer geeigneten Seite eine vorgefertigte Komponente dafür suchen, wie z.B. diese hier:
http://www.torry.net/vcl/mmedia/other/mp3tag.zip
Features:
* Reads a tag from an MP3 file
* Removes a tag from an MP3 file
* Saves a tag to an MP3 file even if the file does not contain a tag in which case it adds a tag to the file
* Built in Tag Editor
* Custom events that alert you of errors, data that changed or when the filename changed.
Fully functional
Source: Included
Kosten: keine
-
Ja auf dieser Seite war ich auch schon und hab mit auf schon die vorgefertigte Komponente runtergeladen und weng damit rum experimentiert. Aber zum einen versteh ich trotzdem nicht so wirklich wie ich sie nutzen soll. Zum anderen funktioniert nicht alles bei mir, da mein Delphi (version 6) nicht alles kennt. So z.B. die Units: ScrollLabel und DsgnIntF.
Und da ich den code nicht ganz verstehe weiß ich auch nicht wie ich die probleme beheben soll.
Kennt niemand eine einfache möglichkeit oder kann mir eine schwere erklären. Bin echt weng langsam auf diesem Gebiet. -
Wenn Du Probleme mit der runtergeladenen Library hast, warum schreibst du dir den Parser net selbst?
Bevor du dich noch ne Woche mit dem 3rd-Party-Code rumärgerst, hast du das auch selbst geschrieben.
Ich hab mir grad mal die Spezifikation von ID3v2.3.0 angesehen und die ist schön straight-forward ohne irgendwas wildes.
Hier bitte die Spek: http://www.id3.org/id3v2.3.0#head-0ef7011e13ae8b3678a676a65b64760b9cedf1de -
Woha, des wird ein Haufen arbeit für mich, wobei ich mich höchstens als fortgeschrittener Delphianfänger bezeichnen würde, aber ich versuchs mal. Danke für den Link, hilft mir denk ich schon weiter!
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage