Einzelnen Beitrag anzeigen

Lasse2002

Registriert seit: 29. Nov 2004
79 Beiträge
 
RAD-Studio 2009 Pro
 
#23

Re: DSPack : Länge von Lied vor Abspielen herausbekommen

  Alt 19. Feb 2007, 23:41
Einfacher geht es so:
Delphi-Quellcode:
function TfrmMain.DurationMinSec(Sekunden : Integer) : String;
begin
  Result := TimeToStr(Sekunden / SecsPerDay);
end;
Man kann mit einer einfachen Divison durch SecsPerDay einen Wert von Sekunden in ein TDateTime umwandeln.

Oder wenn GetMediaLength gleich ein TDateTime zurückgeben soll:
Delphi-Quellcode:
function GetMediaLength(const AFileName: WideString): TDateTime;
var
  MediaDet: IMediaDet;
  hr: HResult;
  Tmp: Double;
begin
  hr := CoCreateInstance(CLSID_MediaDet, nil, CLSCTX_INPROC_SERVER,
    IID_IMediaDet, MediaDet);
  if Succeeded(hr) then
  begin
    MediaDet.put_Filename(AFilename);
    if Succeeded(MediaDet.get_StreamLength(Tmp)) then
      Tmp := Tmp / SecsPerDay
    else
      Tmp := 0;
  end
  else
    Tmp := 0;

  Result := Tmp;
  MediaDet := nil;
end;
Da -1 von TimeToStr in 1 Sekunde umgewandelt wird, ist es besser im Fehlerfall 0 zurückzugeben.
Lasse
  Mit Zitat antworten Zitat