Hab mir folgende Prozedure geschrieben um das einer Webcam dazustellen.
Beim ersten Aufruf ist das kein Problem, da funktioniert alles, wenn ich aber in meiner Listbox ein zweites mal auf die Videoquelle klicke bzw. eine andere auswähle kommt immer die
exception Filteranschlüsse nicht verbunden. Woran liegt das, wie kann ich das zum Bsp. in der
Exception abfangen?
Delphi-Quellcode:
//Initialisieren des Bildes im VideoWindow
procedure TCapSource.StartCapture(Lbindex:integer; VideoWindow:TVideoWindow);
var index:integer;
vw:tvideowindow;
begin
//Klassen instanziieren
try
Filtergraph:=TFiltergraph.Create(VideoWindow);
Filter:=TFilter.Create(VideoWindow);
SampleGrabber:=TSampleGrabber.Create(VideoWindow);
VideoWindow.FilterGraph:=Filtergraph;
SampleGrabber.FilterGraph:=Filtergraph;
Filter.FilterGraph:=Filtergraph;
Filtergraph.ClearGraph;
Filtergraph.Active:=False;
Filter.BaseFilter.Moniker := Capenum.GetMoniker(Lbindex);
Filtergraph.GraphEdit := true;
Filtergraph.Mode := gmCapture;
FilterGraph.Active := True;
with Filtergraph as ICaptureGraphBuilder2 do
RenderStream (@PIN_CATEGORY_PREVIEW, nil, Filter as IBaseFilter,
SampleGrabber as IBaseFilter, VideoWindow as IBaseFilter);
FilterGraph.Play;
except
end;
end;