|
以下是我找到的一点有关的摄像头调用的资料
请高手帮忙解决转到ACCESS
如何提定视频源???
有四个摄像头,想用Video Capture控件(我找到了一个VB的控件)编一个程序。一共也是用了四个Video Capture控件。可是每当我要运行程序的时候(程序还没开始运行之前)。windows就会跳出来一个"选择视频源"的对话框(如图如示),每次都这样。请问该怎么办啊。
接着我又去下载了一个VB源码的,用VFW也就是API写的。开头是这样的
Dim lpszName As String * 100
Dim lpszVer As String * 100
Dim Caps As CAPDRIVERCAPS
'//Create Capture Window
capGetDriverDescriptionA 0, lpszName, 100, lpszVer, 100
lwndC = capCreateCaptureWindowA(lpszName, WS_CHILD Or WS_VISIBLE, 0, 0, 160, 120, Me.hwnd, 0)
'// Connect the capture window to the driver
capDriverConnect lwndC, 0
'// Get the capabilities of the capture driver
capDriverGetCaps lwndC, VarPtr(Caps), Len(Caps)
其中哪句capDriverConnect lwndC, 0 好像是指定具体的视频源。可我不知要怎么改才能连接到我所指定的视频源,比如说是第三个视频源。好像直接改成capDriverConnect lwndC, 3,是不行的。
请帮帮忙!谢谢了。
我想在VC程序中获取USB口的摄像头数据,请问那位高手知不知道有没有什么API函数之类的啊!多谢了各位,如果有源代码更好!
---------------------------------------------------------------
使用vfw
char achDeviceVersion[80] ; // 设备版本信息
char achDeviceAndVersion[160]; //设备名及版本信息
int uIndex;
DriverCount=0;//支持的设备驱动程序个数
for(uIndex=0;uIndex<5;uIndex++)
{
if(capGetDriverDescription(uIndex,(LPSTR)achDeviceAndVersion,sizeof(achDeviceAndVersion),(LPSTR)achDeviceVersion,sizeof(achDeviceVersion)))
{
strcat(achDeviceAndVersion,",");
strcat(achDeviceAndVersion,achDeviceVersion);
DriverCount++;
}
else
break;
}
if(DriverCount==0)
MessageBox("找不到视频设备,请确认已正确连接","错误信息",MB_ICONSTOP |MB_OK);
else
{
CMainFrame *pFrame=(CMainFrame *)AfxGetApp()->m_pMainWnd;
CTest11View *pView=(CTest11View *)pFrame->GetActiveView();
HWND hWnd;
hWnd=pView->GetSafeHwnd();
RECT rc;
GetClientRect(&rc);
hWndCap=capCreateCaptureWindow(NULL,
WS_CHILD |WS_VISIBLE,30,70,
(rc.right-rc.left)/4,(rc.bottom-rc.top)/4,
hWnd,//parent window
0 //chile window id
);//建立视频采集窗口
ASSERT(hWndCap);
if(capDriverConnect(hWndCap,--uIndex))//判断采集窗口是否与0号采集卡驱动相连接
{
//获取视频设备采集能力
capDriverGetCaps(hWnd,&CapDriverCaps,sizeof(CAPDRIVERCAPS));
if(CapDriverCaps.fCaptureInitialized)//初始化成功
{ // 设置Preview模式的频帧
capPreviewRate(hWndCap, 20);
//启动Preview模式
capPreview(hWndCap, TRUE);
//设置每帧结束后所调用的回调函数
//capSetCallbackOnFrame(hWndCap,FrameCallbackProc);
//如果支持视频源选择,则弹出视频源选择对话框
|
|