Moin DelphiUser,
das könnte so aussehen (einfaches Beispiel gemäss
PSDK)
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
pGraph : IGraphBuilder;
pControl : IMediaControl;
pEvent : IMediaEvent;
evCode : integer;
begin
CoInitialize(nil);
try
CoCreateInstance(CLSID_FilterGraph, nil, CLSCTX_INPROC_SERVER,IID_IGraphBuilder,pGraph);
pGraph.QueryInterface(IID_IMediaControl,pControl);
pGraph.QueryInterface(IID_IMediaEvent,pEvent);
if Succeeded(pGraph.RenderFile('D:\test.mpeg',nil)) then begin
if Succeeded(pControl.Run) then begin
pEvent.WaitForCompletion(INFINITE,evCode);
end;
end;
finally
CoUninitialize();
end;
end;
Das Problem ist hier, dass bei Delphi (zumindest bei D5), die ganzen Interfaces nicht deklariert sind. Such' hier mal nach
DSPACK, dazu hab' ich hier schon ein wenig geschrieben. Wichtig für dieses Beispiel ist, dass dort die Interfaches usw. deklariert sind (DirectShow9.pas).
Nähere Erklärungen kann ich Dir allerdings zur Zeit auch nicht geben, da ich selber noch dabei bin mich darin einzuarbeiten.