Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Titel, Album, Interpret und Länge einer MP3 Datei auslesen (https://www.delphipraxis.net/151826-titel-album-interpret-und-laenge-einer-mp3-datei-auslesen.html)

Delphi-Narr 2. Jun 2010 19:55


Titel, Album, Interpret und Länge einer MP3 Datei auslesen
 
Hallo, ich möchte gerne von diversen MP3-Files die Informationen über Titel, Interpret, Album und Länge abrufen und ausgeben.

also die Variablen titel,autor,album,laenge:string

sollen gesetzt werden.

Wie kann ich das machen, wenn ich nur den Dateipfad habe (z.B.: 'C:\Musik\Lied.mp3');

Liebe Grüße!

Teekeks 2. Jun 2010 19:57

Re: Titel, Album, Interpret und Länge einer MP3 Datei ausles
 
Suche mal nach mp3FileUtils...

Delphi-Narr 2. Jun 2010 21:20

Re: Titel, Album, Interpret und Länge einer MP3 Datei ausles
 
Danke, habe mich jetzt damit auseinandergesetzt, doch beim kompilieren tritt immer der Fehler auf, dass es bei Delphi 5 die Funktion URF8Decode oder UTF8_Decode nicht gibt. Was kann ich da machen???

H4ndy 2. Jun 2010 21:24

Re: Titel, Album, Interpret und Länge einer MP3 Datei ausles
 
Laut http://www.gausi.de/mp3fileutils-en.html musst du einen Compilerswitch setzen und die TNT Unicode Controls nachinstallieren (siehe ganz unten auf der Seite), damit diese Unit nutzen kannst (da Id-Tags unicode enthalten koennen).

Delphi-Narr 2. Jun 2010 21:37

Re: Titel, Album, Interpret und Länge einer MP3 Datei ausles
 
Hm, danke!
Da steht nur

requires
dcldb50

Package dcldb50 wird benötigt, konnte aber nich gefunden werden...
Wo krieg ich das denn her???

Gausi 2. Jun 2010 21:38

Re: Titel, Album, Interpret und Länge einer MP3 Datei ausles
 
Das hat mit den TNTs nichts zu tun, UTF8Decode ist eine Delphi-Funktion. Es kann sein, dass es hier im Forum einen Ersatz dafür gibt (einfach mal suchen), ansonsten kannst du das UTF8Decode da auch einfach weglassen. UTF8-Strings kommen nur im ID3v2.4-Tag vor, die nur recht selten vorkommen und z.B. auch vom Windows-Media-Player unter Windows 7 nicht verarbeitet werden können.

Wenn du das UTF8Decode einfach weglässt, kommt es dann bei vielleicht 0.1% aller mp3s dazu, dass evtl. vorhandene Umlaute und andere Zeichen jenseits von ASCII fehlerhaft dargestellt werden.

Edit: Ne, das sind weniger als 5% ;-)

Delphi-Narr 2. Jun 2010 21:49

Re: Titel, Album, Interpret und Länge einer MP3 Datei ausles
 
Ok, danke!
Jetzt muss ich nur noch den File auswählen können. Wie mach ich das? Also Titel etc bekomm ich ja über die entsprechenden Funktionen GetTitle etc. Doch wie sag ich dem, welche Datei der benutzen soll???


Liebe Grüße!

Gausi 2. Jun 2010 22:10

Re: Titel, Album, Interpret und Länge einer MP3 Datei ausles
 
Das steht in den Demos drin. Dafür haben die drei Klassen TMpegInfo, Id3v1Tag und TID3v2Tag die Methoden ReadfromStream und ReadFromFile.

Delphi-Quellcode:
  stream := TFileStream.Create('c:\MeinLied.mp3', fmOpenRead or fmShareDenyWrite);
  try
    Id3v2Tag.ReadFromStream(stream);
    // so geht das finden der Mpeg-Infos (für dauer, bitrate, ...) schneller
    if Not Id3v2Tag.exists then
      stream.Seek(0, sobeginning)
    else
      stream.Seek(Id3v2Tag.size, soFromBeginning);

    MpegInfo.LoadFromStream(Stream);
    Id3v1Tag.ReadFromStream(stream);
  finally
    stream.free;
  end;

Delphi-Narr 2. Jun 2010 22:33

Re: Titel, Album, Interpret und Länge einer MP3 Datei ausles
 
Also so klappt das nicht so ganz...

Ich hatte mir das so überlegt:

Delphi-Quellcode:
for i:=1 to SG.RowCount-1 do //SG ist ein Stringgrid
     begin
          MP3:= TID3v2Tag.create;
          MP3.readfromfile(SG.cells[4,i]); //Da stehen die Dateipfade drin

         
          if MP3.Exists then
          begin
          SG.cells[0,i]:=MP3.Title;
          SG.cells[1,i]:=MP3.Artist;
          SG.cells[2,i]:=MP3.album;
          SG.cells[3,i]:=MP3.id3Length;
          end;
          MP3.Free;
     end;
Doch ich bekomme immer die Fehlermeldung "Fehler bei Bereichsprüfung". :coder2:


EDIT:

Also das habe ich jetzt hinbekommen. Jetzt muss ich nur noch die MP3 Dateien mit dem normalen Mediaplayer abspielen können...


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:07 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 by Thomas Breitkreuz