AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi ID3v1 und ID3v2 auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

ID3v1 und ID3v2 auslesen

Ein Thema von CalganX · begonnen am 5. Dez 2004 · letzter Beitrag vom 12. Dez 2004
Antwort Antwort
Seite 1 von 2  1 2      
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#1

ID3v1 und ID3v2 auslesen

  Alt 5. Dez 2004, 15:18
Hi,
das Auslesen von Tags treibt mich noch in den Wahnsinn.
Mein Problem ist eigentlich recht simpel: ich will die ID3-Tags aus MP3-Dateien lesen. Das Problem ist nur, dass es manchmal v1.1 und manchmal v2 oder gar beides sein kann. Ich kann auch soweit erstere Version mit folgendem Source von hier:
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;
Das Problem ist nun aber, dass ich bisher nichts gefunden habe, um die neuere Version auszulesen.
Hat jemand da was für mich?

Chris
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#2

Re: ID3v1 und ID3v2 auslesen

  Alt 5. Dez 2004, 15:23
Die zweite Version ist nicht so einfach aufgebaut. Die Struktur findest du unter http://www.id3.org, wenn du es selber programmieren willst.
Ansonsten gibt es auf Torry sicherlich einige Komponenten, die auch ID3v2 lesen können, zumindest rudimentär. Alternativ habe ich im DF mal mein [df]"UltimaTag"[/df] vorgestellt, das ID3v1 und ID3v2 lesen und schreiben kann. ID3v2-Unterstützung ist zwar bei weitem noch nicht komplett, aber die Informationen, die auch ID3v1 enthält, sind fertig.
An einem kompletten Redesign von UltimaTag arbeite ich noch, zur Zeit gibt's Lese-Support für einige ID3v2-Frames, allerdings bisher ungetestet, schreibender Zugriff ist noch lange nicht fertig.
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: ID3v1 und ID3v2 auslesen

  Alt 5. Dez 2004, 15:27
Hi,
Zitat von tommie-lie:
Die zweite Version ist nicht so einfach aufgebaut. Die Struktur findest du unter http://www.id3.org, wenn du es selber programmieren willst.
Daran dachte ich eigentlich. Aber ich wollte nicht komplett ohne Source-Denkanstoß anfangen.

Zitat von tommie-lie:
Ansonsten gibt es auf Torry sicherlich einige Komponenten, die auch ID3v2 lesen können, zumindest rudimentär. Alternativ habe ich im DF mal mein [df]"UltimaTag"[/df] vorgestellt, das ID3v1 und ID3v2 lesen und schreiben kann.
Das reicht mir völlig.
Das Problem bei den Torry-Komponenten: die sind nicht D2005-Kompatibel. Und ich habe keine Lust wieder zwei Stunden daran zu sitzen ein D7-Paket auf D9 umzuschreiben.

Zitat von tommie-lie:
ID3v2-Unterstützung ist zwar bei weitem noch nicht komplett, aber die Informationen, die auch ID3v1 enthält, sind fertig.
Reicht mir ebenfalls. Ich will nur Titel, Album und Interpret haben.

Danke für den Hinweis.
SourceCode lässt sich auch mit Notepad lesen. *g*

Chris
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#4

Re: ID3v1 und ID3v2 auslesen

  Alt 5. Dez 2004, 15:38
Zitat von Chakotay1308:
Das Problem bei den Torry-Komponenten: die sind nicht D2005-Kompatibel.
Meine sollte zumindest für den Win32-Teil funktionieren, weil's ja nur 'ne Klasse ist

Zitat von Chakotay1308:
SourceCode lässt sich auch mit Notepad lesen. *g*
Welcher? Meiner? Klar, der ist ja auch mit'm Notepad geschrieben
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#5

Re: ID3v1 und ID3v2 auslesen

  Alt 5. Dez 2004, 15:46
Weicheier! Source schreibt man mit vi.
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#6

Re: ID3v1 und ID3v2 auslesen

  Alt 5. Dez 2004, 15:48
vi?!? dieser komische Editor, den keiner bedienen kann? Da bleibe ich doch lieber bei joe
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: ID3v1 und ID3v2 auslesen

  Alt 5. Dez 2004, 16:19
Hi,
klar. Deine Unit ist nahezu perfekt. Nur die Lizenz stört mich.
Das Projekt, was ich gerade schreibe sollte eigentlich nicht Freeware werden und die (L)GPL zwingt mich ja nahezu dazu, oder?

Chris

Joe ist ganz gut. Aber Vi finde ich besser. Auf jedenfalls sind beide besser, als emacs.
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#8

Re: ID3v1 und ID3v2 auslesen

  Alt 5. Dez 2004, 17:27
Zitat von Chakotay1308:
Nur die Lizenz stört mich.
Wieso? Ist die LPGL

Zitat von Chakotay1308:
Das Projekt, was ich gerade schreibe sollte eigentlich nicht Freeware werden und die (L)GPL zwingt mich ja nahezu dazu, oder?
Jein. Freeware im Sinne von "kostenlos für jedermann" nicht, denn dein Programm würde bei statischer Linkung nur der LGPL unterliegen, d.h. du kannst das Programm auch in Objektcode und für eine entsprechende (finanzielle) Gegenleistung für die Übertragung des Programmes weitergeben. Dein Programm muss also nicht "free" sein, es muss nur unter der LGPL veröffentlich werden.
Bei einer dynamischen Linkung (kompilier' dir 'ne DLL mit Interface oder ein BPL ) ist dein Programm lediglich eines, das meine Bibliothek benutzt, unterliegt also weder der GPL, noch der LGPL.

Allerdings bin ich der Urheber, habe also sämtliche Rechte an der Bibliothek, und wenn du lieb guckst (sehe ich da ein Delphi2005 in deinen Augen? ), räume ich dir eine Sonderlizensierung ein

Andererseits wolltest du doch sowieso nur einen Denkanstoß haben und dir den Code selber schreiben, dein Code wäre dann von dir zu lizensieren, unter jeder Lizenz die dir einfällt
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: ID3v1 und ID3v2 auslesen

  Alt 5. Dez 2004, 17:39
Hi,
okay.
Ich denke sowieso, dass ich selber was schreiben muss, weil ich eigentlich das gerne direkt in meine Klasse einbauen möchte.

Naja, ich werde mir was einfallen lassen.
Danke für deine Hilfe,
Chris
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#10

Re: ID3v1 und ID3v2 auslesen

  Alt 5. Dez 2004, 17:58
Wie waere es mit der JCL/JVCL? Zu Id3 v1 und v2 ist da auch etwas dabei.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 13:34 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