首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi+多USB摄像头->ERROR'连接到系统下的设备没有发挥作用'

2012-12-14 
delphi+多USB摄像头-ERROR'连接到系统上的设备没有发挥作用'使用DSPACK情况1:台式机/笔记本电

delphi+多USB摄像头->ERROR'连接到系统上的设备没有发挥作用'
使用DSPACK
情况1:台式机/笔记本电脑没有自带摄像头:
在制作一个简易的监控软件时,发现当采用超过三个家用摄像头进行摄像时,会出现‘连接到系统上的设备没有发挥作用'的错误
情况1:笔记本电脑有自带摄像头:
不会出现该问题
希望知道的的人回复下,麻烦了。。。
分数就22分了。。。


[解决办法]
把摄像头的分辨率调小点
[解决办法]
谢谢您,我用另外一个程序把摄像头的分辨率调了,但还是不行,希望知道的人回复下
[解决办法]
这样调的好像不能保存,要刷硬件的,就像手机刷ROM一样

引用:
谢谢您,我用另外一个程序把摄像头的分辨率调了,但还是不行,希望知道的人回复下

[解决办法]
试了几台电脑都这样?是不是电脑的摄像头驱动有问题?重装下试试
[解决办法]
您好,谢谢你的回复,我用的摄像头都是免驱的,就是必须在有自带摄像头的笔记本上才行,这个问题一直困扰着我,希望知道的人回复下哈
[解决办法]
这是主要的代码
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;
[解决办法]
可以试试其他的程序连3个摄像头, 
比如DXshow自带的demo 
或者
http://www.codeproject.com/Articles/10248/Motion-Detection-Algorithms

如果这些程序没问题 说明硬件OK
[解决办法]
你好,我没说清楚的是,那我的程序可以选择输入的摄像头的。那三个外接摄像头在自带有摄像头的笔记本的条件下,是可以使用的,但是在没有自带摄像头笔记本和台式机时不幸的。谢谢!

引用:
可以试试其他的程序连3个摄像头, 
比如DXshow自带的demo 
或者
http://www.codeproject.com/Articles/10248/Motion-Detection-Algorithms

如果这些程序没问题 说明硬件OK

热点排行