我用vfw采集视频m_hCapWnd:=capCreateCaptureWindow(Pchar('VideoTest'),
        WS_CHILD or WS_VISIBLE,0,0,AviPanel.width,AviPanel.height,AviPanel.Handle,0);if(capDriverConnect(m_hCapWnd,0)) then
      begin
         capPreviewRate(m_hCapWnd,30);
         capPreview(m_hCapWnd,true);   
         dwSize:=capGetVideoFormatSize(m_hCapWnd);
         capGetVideoFormat(m_hCapWnd,@setBmp, dwSize);
         setBmp.bmiHeader.biWidth:=352;           
         setBmp.bmiHeader.biHeight:=288; 
         capSetVideoFormat(m_hCapWnd,@setBmp,dwSize);
      end;不管我换到哪一路视频capDriverConnect(m_hCapWnd,0)始终为fasle哪位大侠帮我指点一下阿

解决方案 »

  1.   

    检查一下m_hCapWnd是否大于0,视频采集窗口是否创建成功。再用capGetDriverDescription看看ID为0的视频驱动器是否可用。
      

  2.   

    我试了m_hCapWnd的值为986556,可是capGetDriverDescription我不会用,liangqingzhi(老之) 大侠能给我写个例子吗?
      

  3.   

    m_hCapWnd的值大于0,该对象创建成功了,可就是连接不上设备,但用采集卡自带的软件就可以捕捉到视频
    我弄不明白到底是为什么连不上啊
      

  4.   

    老例子了:
    m_hWndCapture = ::capCreateCaptureWindow( NULL,
    WS_CHILD|WS_CAPTION|WS_THICKFRAME,
    0,  0, 0, 0, hWnd, 0 ); if( m_hWndCapture == NULL )
    {
    #ifdef DEBUG
    _cputs( "capture window open fail!\n" );
    #endif
    AfxMessageBox( IDS_CAPTUREERR, MB_ICONWARNING );
    return FALSE;
    }#ifdef DEBUG
    _cputs( "capture window open success!\n" );
    #endif int nIndex = 0;
    BOOL bOk; do{
    // 连接驱动程序
    bOk = capDriverConnect( m_hWndCapture, nIndex );
    nIndex++; }while( !bOk && nIndex<10 ); if( !bOk )
    {
    // 没有驱动程序
    TermCapture();#ifdef DEBUG
    _cputs( "can't find driver, close capture window!\n" );
    #endif
    AfxMessageBox( IDS_DRIVERERR, MB_ICONWARNING );
    return FALSE;
    } // 配置
    if( !CaptureConfig() )
    {
    TermCapture();
    AfxMessageBox( IDS_CONFIGERR, MB_ICONSTOP );
    return FALSE;
    }
      

  5.   

    我实在搞不明白为什么,我这么做都不可以
    for i:=0 to 9 do
    begin
      capDriverConnect(m_hCapWnd,i);
    end;
    可是我的视频采集卡所带的测试软件就可以启动视频阿
      

  6.   

    我用的采集卡是 komsa h.264
      

  7.   

    谢谢大家,我已经搞定了,用vfw不可以实现,需要用采集卡自带的开发包菜可以!