Einzelnen Beitrag anzeigen

Flom

Registriert seit: 19. Sep 2006
126 Beiträge
 
#1

ID3v2 wird nicht Ausgeführt - warum?

  Alt 12. Feb 2007, 20:58
Hallöle,
Ich habe ein Problem (mal wieder - selbes Programm - soll MP3 Dateien finden und Auflisten)
Jedoch funktioniert das Liste nicht mit gausi seiner ID3v1 - ID3v2 Codes irgendwie nicht.

Ich habe Folgenden Code:
in der uses ist Deklariert: Mp3FileUtils_WE

var
Form1: TForm1;
quelle:string;
Id3v1Tag:TId3v1Tag;
Id3v2Tag:TId3v2Tag;

der code soll MP3 Dateien finden und in das ListView Eintragen:
Delphi-Quellcode:
procedure TForm1.CreateFileList(Dir, Ext: String; UseSubDirs: Boolean);
var
SR: TSearchRec;
stream: TFilestream;
Item: TListItem;
begin
If FindFirst(Dir + '*.*', faAnyFile, SR) = 0 then
Repeat
  If (SR.Attr and faDirectory = faDirectory) and (SR.Name <> '.') and (SR.Name <> '..') and (UseSubDirs) then CreateFileList(IncludeTrailingPathDelimiter(Dir + SR.Name), Ext, UseSubDirs)
  Else If LowerCase(ExtractFileExt(SR.Name)) = LowerCase(Ext) then
   begin
    Application.ProcessMessages;
    ////////////////////////////////////////////////////////////////////////////
      stream := TFileStream.Create(dir + sr.name, fmOpenRead or fmShareDenyWrite);

  // ID3v2-Tag auslesen
  Id3v2Tag.ReadFromStream(stream);

  // Position neu setzen
  if Not Id3v2Tag.exists then
    stream.Seek(0, sobeginning)
  else
    stream.Seek(Id3v2Tag.size, soFromBeginning);

  // ID3v1-Tag auslesen
  Id3v1Tag.ReadFromStream(stream);

  stream.free;
   // ListView1.Items.Add(Dir + SR.Name);
 ////////////////////////////////////////////////////////////////////////////
    Item.Caption:=Id3v2Tag.Artist;
    Item.SubItems.Add(Id3v2Tag.Title);
    Item.SubItems.Add(Id3v2Tag.Album);
    Item.SubItems.Add(SR.Name);
    Label1.Caption:='Bin da!';
   end;
Until FindNext(SR) <> 0;
FindClose(SR);
end;
Start des Programmes
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
Id3v1Tag:=TId3v1Tag.Create;
Id3v2Tag:=TId3v2Tag.Create;
end;
bei FormDestroy wirds wieder frei gegeben

und zu guter letzt die Suche selbst

Delphi-Quellcode:
procedure TForm1.BtnSucheClick(Sender: TObject);
begin
ListView1.Clear;
CreateFileList(quelle + '\','mp3', CheckBox1.Checked);
end;
Habe diesmal auf eine Sortierung bisher verzichtet! (Programm ist neu Entwickelt

Grüße!
Ein wahrhaft großer Mann wird weder einen Wurm zertreten noch vor dem Kaiser kriechen.

Benjamin Franklin
17.01.1706 - 17.04.1790
  Mit Zitat antworten Zitat