Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Unbekannte Bilddateierweiterung bei id3??? (https://www.delphipraxis.net/47746-unbekannte-bilddateierweiterung-bei-id3.html)

glkgereon 15. Jun 2005 17:08


Unbekannte Bilddateierweiterung bei id3???
 
Hi

ich will alle mp3's aus einem Ordner holen und deren Gesamtlaufzeit (fürs erste) ausrechnen.
grundsätzlich funktioniert auch alles

ich nutze folgenden Code:
Delphi-Quellcode:
procedure FindAllFiles;
//Wie in Codelib
//nur RootFolder:=IncludeTrailingPathDelimiter(RootFolder);
//statt IncludeTrailingPathDelimiter(RootFolder);

function Sec2Time(Secs: Int64):String;
var S, M, H, D: Int64;
begin
  S:=Secs Mod 60; Secs:=Secs Div 60;
  M:=Secs Mod 60; Secs:=Secs Div 60;
  H:=Secs Mod 24; Secs:=Secs Div 24;
  D:=Secs;
  Result:=IntToStr(D)+' Tage '+FormatFloat('00',H)+':'+FormatFloat('00',M)+':'+FormatFloat('00',S);
end;

procedure TForm1.RefreshFolder(Folder: String);
var Temp: TStringList;
    i:Integer;
    Sum:Int64;
begin
  Temp:=TStringList.Create;
  Temp.Clear;
  FindAllFiles(Temp,Folder,'*.*',False);
  Label1.Caption:='Dateien: '+IntToStr(Temp.Count);
  Temp.Clear;
  FindAllFiles(Temp,Folder,'*.mp3',False);
  Label2.Caption:='MP3-Dateien: '+IntToStr(Temp.Count);
  Sum:=0;
  for i:=0 to Temp.Count-1 do
    begin
    JvID3v21.FileName:=Temp[i];
    JvID3v21.Open;
    Sum:=Sum+JvID3v21.FileInfo.LengthInSec;
    end;
  Label3.Caption:='Gesamtlaufzeit: '+Sec2Time(Sum);
  Temp.Free;
end;
jedoch bekomme ich sporadisch folgende Fehlermeldung:
Zitat:

---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Project2.exe ist eine Exception der Klasse EInvalidGraphic mit der Meldung 'Unbekannte Bilddateierweiterung (.jpg)' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------
kann damit irgendwer was anfangen?

100nF 15. Jun 2005 17:43

Re: Unbekannte Bilddateierweiterung bei id3???
 
hi,

du musst schauen, dass NUR mp3s aufgelistet werden. irgendwas muss da schief gelaufen sein beim auflisten.
du kannst ja mal die stringlist in einer listbox darstellen und schaust, ob nur mp3s aufgelistet sind.

bis jetzt habe ich den fehler noch nicht gefunden...
welche zeile wird markiert wenn der fehler erscheint?

P.S. du kannst ja die dateien noch mit extractfileext() prüfen.

glkgereon 15. Jun 2005 17:50

Re: Unbekannte Bilddateierweiterung bei id3???
 
gemotzt wird bei folgendem code aus der JvIDv3Base (Zeile 7210)
Delphi-Quellcode:
procedure TJvID3PictureFrame.AssignTo(Dest: TPersistent);
var
  TmpFileName: string;
begin
  if (Dest is TPicture) or (Dest is TGraphic) then
  begin
    if (DataSize > 0) and (MIMEType <> cURLArrow) then
    begin
      TmpFileName := JclFileUtils.FileGetTempName(cPictureFrameFileNameTemplate);
      TmpFileName := ChangeFileExt(TmpFileName, MIMETypeToExt(MIMEType));

      SaveToFile(TmpFileName);
      try
        try
          if Dest is TPicture then
            TPicture(Dest).LoadFromFile(TmpFileName) //<--!!!HIER
          else
          if Dest is TGraphic then
            TGraphic(Dest).LoadFromFile(TmpFileName);
        except
          on EInvalidGraphic do
            ; { Do nothing }
        end
      finally
        SysUtils.DeleteFile(TmpFileName);
      end;
    end
    else
      Dest.Assign(nil);
  end
  else
    inherited AssignTo(Dest);
end;
heisst das dass der an der Datei was kaputt is?

CalganX 15. Jun 2005 18:02

Re: Unbekannte Bilddateierweiterung bei id3???
 
Hi,
nein. Du hast die Möglichkeit in ID3-Tags noch ein Album-Cover zu speichern. Soweit ich weiß geht das aber nur bei ID3v2.
Das Problem ist schnell gelöst: Unit jpeg einbinden (in deiner Unit) und gut ist. ;)

Chris

glkgereon 15. Jun 2005 18:04

Re: Unbekannte Bilddateierweiterung bei id3???
 
Zitat:

Zitat von Chakotay1308
Hi,
nein. Du hast die Möglichkeit in ID3-Tags noch ein Album-Cover zu speichern. Soweit ich weiß geht das aber nur bei ID3v2.
Das Problem ist schnell gelöst: Unit jpeg einbinden (in deiner Unit) und gut ist. ;)

Chris


in meiner unit?

unit1 oder die jv-unit?

Edit: in der Jv-Unit eingebunden kommt kein fehler mehr...danke!!

CalganX 15. Jun 2005 18:18

Re: Unbekannte Bilddateierweiterung bei id3???
 
Hi,
Zitat:

Zitat von glkgereon
Edit: in der Jv-Unit eingebunden kommt kein fehler mehr...danke!!

ich würde sie eher in deiner Unit einbinden. Sicher ist sicher. ;)

Chris


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:15 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