0

DirectShowWebカメラアプリケーションがあります。サンプルグラバーを使用してバッファーコールバックを取得し、IVideoWindowを使用してプレビューの表示座標を制御します。以下のように実行するプレビューストリームとキャプチャストリームがあります。

g_pBuild-> RenderStream(&PIN_CATEGORY_CAPTURE、&MEDIATYPE_Video、cam、g_pGrabberF、pNullRenderer2); g_pBuild-> RenderStream(&PIN_CATEGORY_PREVIEW、&MEDIATYPE_Video、cam、NULL、NULL);

特定のオンボードカメラでは、IMediaControl :: Run、IMediaControl :: Stop、IMediaCOntrol::Runの順にカメラのスイッチがオンになりません。

外部USBカメラはここで正しく動作します。どうすればこれについてもっと診断できますか?任意のポインタ、助けてください。

4

2 に答える 2

1

おそらく、ユニット内の特定のハードウェアの問題に固有のものです。通話の間に 1 秒のスリープを追加して、簡単なテストを行います。それが役立つ場合は、状態をアイドル状態にするかどうかを知る方法を見つける必要があります。

于 2012-05-22T14:41:32.817 に答える
0

あなたが提供しなかった質問の2つの重要な部分があります:

  1. グラフ トポロジのフィルタリング
  2. HRESULTメソッド呼び出しの

トポロジー内のフィルターの 1 つが状態遷移をうまく処理できず、状態間のどこかで失敗するという問題が発生する可能性があります。おそらく、あなたの2番目Runはまだ完了しようとしているStop. HRESULT問題を示すメッセージが表示されるか (あなたにとっては良いことです)、フィルターがサイレントに失敗する場合があります。

フィルター グラフがバグ自体の原因とは考えにくいです。すべてを問題なく実行する可能性は高いですが、内部的にフィルター間で呼び出しを分散するため、フィルターの 1 つがあなたを失望させています。

于 2012-05-22T13:11:53.580 に答える