![]() |
Re: ID3v1 und ID3v2 auslesen
Hi,
aus zwei bzw. drei Gründen nehme ich im Moment nicht die JVCL: erstens habe ich keine Möglichkeit (lies Zeit) 15MB herunterzuladen (wg. ISDN) um dann unter Umständen festzustellen, dass es nicht richtig mit D2005 funktioniert und zweitens weil ich gerne auf jegliche Zusatzkomponenten/-bibliotheken verzichten möchte. ;) Aber ansonsten habe ich nichts gegen die JVCL. Ich warte im Moment auf den 20. Dezember in der Hoffnung, dass dann die JVCL Version 3 fertig ist und ich mir relativ sicher sein kann, dass die 15MB sich gelohnt haben (die ich dann aber auch in der Schule runterladen werde). ;) Chris |
Re: ID3v1 und ID3v2 auslesen
Moin!
In dem oben von dir verlinkten Beitrag habe ich auch auf meine ID3 Tag Lib verwiesen und diese kommt ohne Komponente aus sondern ist eine reine Klasse und du kannst es ja bei dir nutzen und es sollte Delphi 2005 kompatibel sein. MfG Muetze1 |
Re: ID3v1 und ID3v2 auslesen
Hi Leute,
als ich gerade diesen Thread laß ist mir etwas aufgefallen. @Chakotay1308: Diese Version:
Delphi-Quellcode:
type
TID3Tag = record // diese Struktur erweitert die Char arrays um ein Zeichen für Nullterminator, // somit muß sie Feld für Feld gelesen und geschrieben werden, da ID3 eben diese Terminatoren NICHT speichert. ID: array[0..3] of Char; Title: array[0..30] of Char; Artist: array[0..30] of Char; Album: array[0..30] of Char; Year: array[0..4] of Char; Comment: array[0..30] of Char; Genre: Byte; end; function ReadID3Tag(const FileName: String): TID3Tag; begin FillChar(Result, SizeOf(Result), 0); with TFileStream.Create(FileName, fmOpenRead or fmShareDenyNone) do try Position := Size - 128; Read(Result.ID, 3); Read(Result.Title, 30); Read(Result.Artist, 30); Read(Result.Album, 30); Read(Result.Year, 4); Read(Result.Comment, 30); Read(Result.Genre, 1); finally Free; end; end; funktionioniert nur bei ID3v1 Tags, es gibt aber schon seit langem die oft verwendete ID3v1.1. Du solltest auf jeden Fall die Funktion ausbauen, die Struktur ist folgende: ID ('TAG') Title 30 Artist 30 Album 30 Year 4 Comment 28 0-Byte ($0) 1 Album Track (Titelnummer) 1 Genre 1 die Zahlen sind natürlich in Byte. Gruß DelphiFreund |
Re: ID3v1 und ID3v2 auslesen
Aber nicht immer wird v1.1 benutzt, manchmal ist der Kommentar tatsächlich 30 Zeichen lang. Der Indikator für v1.1 sind die letzten beiden Byte des Comment-Feldes, ist der vorletzte ein Nullbyte und der letzte ungleich 0, dann ist der letzte die Tracknummer. Ist das vorletzte ungleich 0, ist es v1.0 und die letzten beiden gehören zum Kommentar.
|
Re: ID3v1 und ID3v2 auslesen
Stimmt, darauf sollte man natürlich achten, ich versuche ja auch seit gestern TAGs zu lesen und zu schreiben
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz