这是主要的代码 procedure TForm1.FormCreate(Sender: TObject); var i: integer; begin CapEnum := TSysDevEnum.Create(CLSID_VideoInputDeviceCategory); CapEnum1 := TSysDevEnum.Create(CLSID_VideoInputDeviceCategory); for i := 0 to CapEnum.CountFilters - 1 do begin videoListBox.Items.Add(CapEnum.Filters[i].FriendlyName+inttostr(i)); video_1_ComboBox.Items.Add(CapEnum.Filters[i].FriendlyName+inttostr(i)); video_2_ComboBox.Items.Add(CapEnum1.Filters[i].FriendlyName+inttostr(i)); video_3_ComboBox.Items.Add(CapEnum.Filters[i].FriendlyName+inttostr(i)); end end;procedure TForm1.video_1_ComboBoxChange(Sender: TObject); begin video1_FilterGraph.ClearGraph; video1_FilterGraph.Active := false; video1_Filter.BaseFilter.Moniker := CapEnum.GetMoniker(video_1_ComboBox.ItemIndex); video1_FilterGraph.Active := true; with video1_FilterGraph as ICaptureGraphBuilder2 do RenderStream(@PIN_CATEGORY_PREVIEW, nil, video1_Filter as IBaseFilter, nil, VideoWindow1 as IbaseFilter); try video1_FilterGraph.Play except showmessage('please select camera not used') end end;procedure TForm1.video_2_ComboBoxChange(Sender: TObject); begin video2_FilterGraph.ClearGraph; video2_FilterGraph.Active := false; video2_Filter.BaseFilter.Moniker := CapEnum1.GetMoniker(video_2_ComboBox.ItemIndex); video2_FilterGraph.Active := true; with video2_FilterGraph as ICaptureGraphBuilder2 do RenderStream(@PIN_CATEGORY_PREVIEW, nil, video2_Filter as IBaseFilter, nil, VideoWindow2 as IbaseFilter); try video2_FilterGraph.Play except showmessage('please select camera not used') end end;procedure TForm1.video_3_ComboBoxChange(Sender: TObject); begin video3_FilterGraph.ClearGraph; video3_FilterGraph.Active := false; video3_Filter.BaseFilter.Moniker := CapEnum.GetMoniker(video_3_ComboBox.ItemIndex); video3_FilterGraph.Active := true; with video3_FilterGraph as ICaptureGraphBuilder2 do RenderStream(@PIN_CATEGORY_PREVIEW, nil, video3_Filter as IBaseFilter, nil, VideoWindow3 as IbaseFilter); try video3_FilterGraph.Play except showmessage('please select camera not used') end end;
procedure TForm1.FormCreate(Sender: TObject);
var i: integer;
begin
CapEnum := TSysDevEnum.Create(CLSID_VideoInputDeviceCategory);
CapEnum1 := TSysDevEnum.Create(CLSID_VideoInputDeviceCategory);
for i := 0 to CapEnum.CountFilters - 1 do
begin
videoListBox.Items.Add(CapEnum.Filters[i].FriendlyName+inttostr(i));
video_1_ComboBox.Items.Add(CapEnum.Filters[i].FriendlyName+inttostr(i));
video_2_ComboBox.Items.Add(CapEnum1.Filters[i].FriendlyName+inttostr(i));
video_3_ComboBox.Items.Add(CapEnum.Filters[i].FriendlyName+inttostr(i));
end
end;procedure TForm1.video_1_ComboBoxChange(Sender: TObject);
begin
video1_FilterGraph.ClearGraph;
video1_FilterGraph.Active := false;
video1_Filter.BaseFilter.Moniker := CapEnum.GetMoniker(video_1_ComboBox.ItemIndex);
video1_FilterGraph.Active := true;
with video1_FilterGraph as ICaptureGraphBuilder2 do
RenderStream(@PIN_CATEGORY_PREVIEW, nil, video1_Filter as IBaseFilter, nil, VideoWindow1 as IbaseFilter);
try video1_FilterGraph.Play
except
showmessage('please select camera not used')
end
end;procedure TForm1.video_2_ComboBoxChange(Sender: TObject);
begin
video2_FilterGraph.ClearGraph;
video2_FilterGraph.Active := false;
video2_Filter.BaseFilter.Moniker := CapEnum1.GetMoniker(video_2_ComboBox.ItemIndex);
video2_FilterGraph.Active := true;
with video2_FilterGraph as ICaptureGraphBuilder2 do
RenderStream(@PIN_CATEGORY_PREVIEW, nil, video2_Filter as IBaseFilter, nil, VideoWindow2 as IbaseFilter);
try video2_FilterGraph.Play
except
showmessage('please select camera not used')
end
end;procedure TForm1.video_3_ComboBoxChange(Sender: TObject);
begin
video3_FilterGraph.ClearGraph;
video3_FilterGraph.Active := false;
video3_Filter.BaseFilter.Moniker := CapEnum.GetMoniker(video_3_ComboBox.ItemIndex);
video3_FilterGraph.Active := true;
with video3_FilterGraph as ICaptureGraphBuilder2 do
RenderStream(@PIN_CATEGORY_PREVIEW, nil, video3_Filter as IBaseFilter, nil, VideoWindow3 as IbaseFilter);
try video3_FilterGraph.Play
except
showmessage('please select camera not used')
end
end;
比如DXshow自带的demo
或者
http://www.codeproject.com/Articles/10248/Motion-Detection-Algorithms如果这些程序没问题 说明硬件OK