Einzelnen Beitrag anzeigen

xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#8

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

  Alt 17. Feb 2007, 18:09
Hallo,

wenn Du DirectShow verwenden willst, kannst Du folgende Funktion verwenden (Ergebnis in Millisekunden):
Delphi-Quellcode:
uses
  ActiveX, DirectShow9;

...

function GetDuration(const FileName: WideString): Cardinal;
var
  GB: IGraphBuilder;
  MediaSeeking: IMediaSeeking;
  RefTime: Int64;
begin
  Result := 0;

  if Succeeded(CoCreateInstance(CLSID_FilterGraph, nil, CLSCTX_INPROC_SERVER,
      IID_IGraphBuilder, GB)) and
     Succeeded(GB.RenderFile(PWideChar(FileName), nil)) and
     Succeeded(GB.QueryInterface(IMediaSeeking, MediaSeeking)) then
  begin
    MediaSeeking.GetDuration(RefTime);
    Result := Cardinal(RefTime div 10000);
  end;
end;
Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat