Hat es schon mal jemand mit IMediaDet probiert? Dieses Interface ist dafür gedacht, die Länge und evtl. noch ein paar weitere Infos von einer Mediadatei herauszubekommen.
Delphi-Quellcode:
function GetMediaLength(const AFileName: WideString): Double;
var
MediaDet: IMediaDet;
hr: HResult;
begin
hr := CoCreateInstance(CLSID_MediaDet, nil, CLSCTX_INPROC_SERVER,
IID_IMediaDet, MediaDet);
if Succeeded(hr) then
begin
MediaDet.put_Filename(AFilename);
MediaDet.get_StreamLength(Result);
end
else
Result := -1;
MediaDet := nil;
end;
Aufrufen mit:
Delphi-Quellcode:
I := GetMediaLength('E:\demo.avi');
ShowMessage('Länge: ' + FloatToStr(i) + ' Sekunden');