+ -
当前位置:首页 → 问答吧 → VFW如何使用第二个摄像头(200分)

VFW如何使用第二个摄像头(200分)

时间:2011-09-25

来源:互联网

目前需要使用到2个摄像头,不需要同时工作,但是要求不要手工选(不要WM_CAP_DLG_VIDEOSOURCE手选)。
比如这样:一个form,1个panel,2个button,点button1,panel1出现第一个摄像头的图像,关掉(好吧,要用button3关掉);点button2,panel1出现第二个摄像头的图像。


如果只用第一个摄像头:
SendMessage(hWndC, WM_CAP_SET_CALLBACK_VIDEOSTREAM,0,0);
SendMessage(hWndC, WM_CAP_SET_CALLBACK_ERROR,0,0);
SendMessage(hWndC, WM_CAP_SET_CALLBACK_STATUSA,0,0);
SendMessage(hWndC, WM_CAP_DRIVER_CONNECT,0,0);
SendMessage(hWndC, WM_CAP_SET_SCALE,1,0);
SendMessage(hWndC, WM_CAP_SET_PREVIEWRATE,66,0);
SendMessage(hWndC, WM_CAP_SET_OVERLAY,1,0);
SendMessage(hWndC, WM_CAP_SET_PREVIEW,1,0);
很正常。


但是第二个摄像头,无论我
SendMessage(hWndC, WM_CAP_DRIVER_CONNECT,id,0) 里面id大于0就返回黑屏,应该是VFW原因,请高手给个解决方法。
如果设备id需要查找,麻烦告知查找方法,特定硬件完全可以写固定值。


我对DShow一窍不通,如果DShow能解决,麻烦给个完整的例程(包括用到的控件),
无限感激,邮箱:[email protected]

(delphi版本哦,谢谢!)

作者: jenhon   发布时间: 2011-09-25

id格式对不?DirectX不通

作者: tjianliang   发布时间: 2011-09-25

vfw id只是尝试直接填整型数,0就正常,从1填到50,都黑屏。

DirectShow不懂,所以希望有现成的例程。

作者: jenhon   发布时间: 2011-09-25