• 关于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

  • 相关阅读:
    Unable to save settings: Failed to save settings. Please restart IntelliJ IDEA
    mysql使用instr
    swagger错误:Failed to execute 'fetch' on 'Window': Request with GET/HEAD method cannot have body
    java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result异常的解决方法
    平行四边形
    transition
    transform
    box-shadow
    text-shadow文字阴影
    linear-gradient线性渐变
  • 原文地址:https://www.cnblogs.com/linmeng/p/2835982.html
Copyright © 2020-2023  润新知