3

ビデオ ストリーミング用の Firefox プラグインとしてエクスポートする DirectShow アプリケーションを使用しています。

私の知る限り、プラグインは Web ページとは別のウィンドウでレンダリングされているようです。アプリケーションを編集して、Flash で wmode='opaque' または 'transparent' を使用できるように、プラグインで html 要素を使用できるようにしたいと考えています。動作するもう 1 つのオプションは、マウス イベント (マウス移動やマウス ダウンなど) をアプリケーションに渡すことです。

put_MessageDrain と put_Owner について調べてきましたが、これらをアプリケーションに適用する方法や機能するかどうかはわかりません。

iframe shimming が機能する可能性があることも認識していますが、アプリケーションのソース コードにアクセスできるので、回避策を使用するのではなく、機能を直接追加したいと考えています。iframe shimming は私の最良の選択肢ですか? 最も簡単なオプションのようです。

このアプリケーションは現在、ウィンドウレス モードを使用しており、常に Web ページの他のすべての上に表示されます。

4

1 に答える 1

1

DirectShow ビデオ レンダラーでビデオを表示する方法では、独自のビデオ レンダラー フィルターを提供するか、標準ビデオ レンダラーの 1 つにカスタム アロケーター/プレゼンター オブジェクトを提供しない限り、透明にすることはできません。DirectShowレンダラーは、ホストウィンドウから独立したDirectDrawまたはDirect3Dサーフェスでビデオを表示し、透明なビデオやその他のものと組み合わせた画像を取得するはずの方法でホストと対話しません。

私はずっと読んでいてput_MessageDrainput_Owner

これらはウィンドウモード用です。ホストウィンドウと不透明にカバーする四角形を提供していると想定するウィンドウレスを使用しているようです。VMR-7/9 と EVR が提供する 3 番目のモードである Renderless は、アロケーター/プレゼンターを提供し、プレゼンテーションをオーバーライドするモードです。

Windows SDK (最新ではなく、古いバージョンを探す必要がある場合もあります) には、レンダーレス モードのデモを行うサンプル 、が用意れています。RenderlessVMR9AllocatorEVRPresenter

于 2013-06-06T16:59:27.853 に答える