甩祸 发表于 2015-5-20 06:48:28

关于Win7系统下使用capDriverConnect()连接失败的解决办法

  
  最近在学习音频、视频处理编程技术,本人遇到的第一个问题就是用capDriverConnect函数捕获视频源时总是失败,弹出一个捕获源对话框,我点击确定后函数的返回值为0,捕获失败,我在网上也搜索了这方面的资料,发现好多人都遇到了这个问题,大家说需要多次连接才能成功,连接次数不确定,完全是碰运气,运气好的话能连上,但是大家都没有给出解决的方法,我经过多次实验找到了一种解决的方法与大家分享
  我查看了VC++视频处理这方面的书籍,里面给出的连接代码全部是下面这种形式
  if(capDriverConnect(m_hwnd,0)==TRUE)
  {
  .......//表示连接成功就可以执行其他的代码了
  }
  else
  {
  MessageBox("连接失败");
  return false;
  }
  这样写的话我发现和大家遇到了同样的问题就是无法连接视频驱动。后来我就想既然多次连接可能能够连接上,那就放在While循环里看看情况怎么样
  我就改了一下程序
  While(capDriverConnect(m_hwnd,0)!=TRUE)
  continue;
  这一改我发现只弹出一次捕获源对话框,你点击确定后即可以连接上,所以如果谁遇到这个问题的话建议大家把if换成While
  具体的原因我还不清楚
  文章内容转自http://www.iyunv.com/os/201109/106443.html
  ======================================================
  我的情况是,调试程序没有问题,可以正常启动摄像头,但直接运行就会连接不成功(debug和release效果一样)。
  解决办法与原文差不多,只是加了一些控制。



//可能需要多次连接驱动才能成功
int i=0;
while(!capDriverConnect(m_hCameraWnd, 0))
{
if(++i
页: [1]
查看完整版本: 关于Win7系统下使用capDriverConnect()连接失败的解决办法