zoukankan      html  css  js  c++  java
  • 关于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.2cto.com/os/201109/106443.html

    ======================================================

    我的情况是,调试程序没有问题,可以正常启动摄像头,但直接运行就会连接不成功(debug和release效果一样)。

    解决办法与原文差不多,只是加了一些控制。

    //可能需要多次连接驱动才能成功
    int i=0;
    while(!capDriverConnect(m_hCameraWnd, 0))
    {
    	if(++i <= 10)
    		continue;
    }
    

    另外,附上一个网上的例子,供需要的人使用(已修复以上问题)。

    https://files.cnblogs.com/linmeng/Camera02.rar

  • 相关阅读:
    javascript性能
    图片及js的预加载
    url参数解析
    javascript预编译
    13、MVC 设计思想
    12、JDBC 流程
    线程-2、sleep() 、join()、yield()有什么区别
    线程-1、创建线程的方式及实现
    集合-7、HashMap实现原理及源码分析
    集合-6、HashSet 和 HashMap 区别
  • 原文地址:https://www.cnblogs.com/linmeng/p/2835982.html
Copyright © 2011-2022 走看看