Einzelnen Beitrag anzeigen

Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.334 Beiträge
 
Delphi XE5 Professional
 
#1

Verwenden der MediaInfo.DLL

  Alt 25. Okt 2004, 16:28
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.
  Mit Zitat antworten Zitat