4

問題の背景 - コンピューター上の Web カメラに同時にアクセスしようとしている 2 つの異なる Windows アプリケーションがあります。現在、アクセスできるアプリケーションは 1 つだけです。両方のアプリケーションが同時に Web カメラにアクセスできるようにしたいと考えています。私の問題の一般的な例は、Skype と yahoo メッセンジャーが同時にコンピューターの Web カメラにアクセスしようとすることです。

Windowsでこれを可能にするいくつかのソフトウェア(manycam.com、http://www.splitcamera.com/)を見つけました。しかし、彼らがそれをどのように実装したかはわかりません。私のコードは他の API と統合する必要があるため、これを達成するために自分でコードを書きたいと考えています。

これを実現するためにデバイス ラッパーを作成する方法を誰かが明らかにしてくれれば幸いです。

4

1 に答える 1

3

カーネル カメラ ドライバーは、いくつかの OS 定義のコールバックを登録します。コールバックの 1 つが出力ストリームに使用されます。専用の Windows アプリケーションには、このストリームへのインターフェイスがあります。この件については、少し読む必要があります。これは、SO の範囲でカバーできるものではありません。クライアント アプリケーションとカメラ ドライバーの間に配置されるコンポーネントが必要です。このコンポーネントは、カメラ ドライバーの出力をインターセプトし、登録済みのクライアント用に複製する必要があります。これは、カーネル (フィルター ドライバー) またはユーザー モード (推奨) で実現できます。http://msdn.microsoft.com/en-us/library/windows/hardware/ff557573%28v=vs.85%29.aspxは、開始するのに適した場所です。

注: この機能は、お使いのカメラ ソフトウェアで既にサポートされている可能性があります (可能性は非常に低いと思いますが)。この場合は、対応するドキュメントを参照する必要があります。

于 2012-11-07T10:31:45.777 に答える