Hallo,
es gibt mehrere Befehlszeilenprogramme, mit denen man Informationen zu Videodateien erhalten kann. Für mein Programm benötige ich die Spieldauer von MPEG-2-Videos.
Beim Projekt MediaInfo (
http://mediainfo.sourceforge.net/,
http://sourceforge.net/projects/mediainfo/) gibt es neben einem Befehlszeilentool und einer
GUI auch eine
DLL. Diese MediaInfo.DLL würde ich gern benutzen. Jedoch scheitere ich bereits beim Öffnen der Datei.
Die
DLL ist in C++ geschrieben und in der Dokumentation steht:
Zitat:
int MediaInfoLib::MediaInfo::Open ( const std::string & File )
Open a file.
Parameters:
File File to open
Return values:
0 File not opened
1 File opened
Meine Procedure sieht so aus:
Delphi-Quellcode:
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, MPlayer;
...
procedure TForm1.LiesDLLClick(Sender: TObject);
type
TMediaOpen = function (Name: string) : Integer;
var
Fehler: integer;
LibHandle: THandle;
MediaOpen: TMediaOpen;
procedure add(Zeile : string);
begin
with Memo.Lines do Append(Zeile);
end;
begin
try
LibHandle := LoadLibrary ('MediaInfo.dll');
MediaOpen := GetProcAddress (LibHandle, 'MediaInfo_Open');
if assigned(MediaOpen)
then begin
Fehler := MediaOpen (Datei);
add (IntToStr(Fehler));
end;
finally
FreeLibrary (LibHandle);
end;
end;
Der Wert für den Fehler beträgt jedoch weder 0 noch 1 sondern bei zwei verschiedenen MPEG-2-Videos zuerst 17245408 und danach 170861792. Eine Fehlermeldung bekomme ich von Delphi 3 Prof nicht.
Nachtrag:
Das einzig brauchbare erschien mir
http://www.delphipraxis.net/internal...ct.php?t=29012 zu sein. Allerdings scheitert der Import mit der Meldung, dass Selbstregistrierungsinformationen fehlen.