0

2つの異なるWebカメラをPCに接続していますが、次のコードを実行するときにそれらを選択するのに問題があります。すべての初期化ルーチンを含めましたが、capDlgVideoSource呼び出しの最後の行で、選択できるリストではなく、1つのWebカメラのビデオソースダイアログのみが表示されます。OSはWinXPSP3です

//Create invisible window to hold the capture window.
hwnd = CreateWindowEx(0, _T("webcampcapwindow"), _T(""), 0, 0, 0, 1, 1, HWND_DESKTOP, NULL, GetModuleHandle(NULL), NULL);
if( !hwnd ) 
    throw FatalException( _T("main Capture window create failed"), _T(__FILE__), __LINE__ );

//Create capture window.
capHwnd = capCreateCaptureWindow(_T("webcampcapwindowchild"), WS_CHILD, 0, 0, 1, 1, hwnd, 1);
if( !capHwnd ) 
    throw FatalException( _T("secondary Capture window create failed"), _T(__FILE__), __LINE__ );

CAPDRIVERCAPS caps;
if(capDriverConnect(capHwnd, 0)) {
    connectedtoWc = true;
    break;
}

if ( !connectedtoWc )
    throw FatalException( _T("Could not connect to capture driver."), _T(__FILE__), __LINE__ );

//Attach our callback to the capture window.
if( !capSetCallbackOnVideoStream(capHwnd, videoCallback))
    throw FatalException( _T("Unable to Attach our callback to the capture window."), _T(__FILE__), __LINE__ );

//Make sure we can access this object from the callback.
if(!capSetUserData(capHwnd, this))
    throw FatalException( _T("Could not associate user data with capture."), _T(__FILE__), __LINE__ );

//Check everything's initialised.
caps.fCaptureInitialized = false;
if( !capDriverGetCaps(capHwnd, &caps, sizeof(CAPDRIVERCAPS)))
    throw FatalException( _T("Unable to get driver caps"), _T(__FILE__), __LINE__ );

if(!caps.fCaptureInitialized)
    throw FatalException( _T("Unable to initialize capture driver"), _T(__FILE__), __LINE__ );

if (caps.fHasDlgVideoSource)
    capDlgVideoSource(capHwnd);

ビデオソースダイアログでWebカメラを選択できるようにするにはどうすればよいですか?現在、2番目のWebカメラのプロパティが表示されています。

4

1 に答える 1

1

あなたの質問からは少し不明確ですが、私は専門家ではありませんが、多くのカメラドライバーがサポートしていない VfW を使用しているようです。

サポートは WDM 下位互換性ドライバーを使用して組み込まれていますが、これはあまりうまく機能していないようです。この問題に対して私が見た唯一の解決策は、いくつかのレジストリ体操 (目的のデバイスに設定) を実行することですDevicePathHKLM\SYSTEM\CurrentControlSet\Control\MediaResources\msvideo\MSVideo.VFWWDM、これは私の頭を少し超えています - 私はハードウェアの男です.

于 2011-10-31T21:37:00.920 に答える