3

Delphi 6とDSPACKを使用して、オーディオとDirectXに関連するいくつかの操作を実行しています。列挙されたオーディオ入力デバイスの1つをTFilterオブジェクトに割り当て、そのフィルターをTSampleGrabberオブジェクトに接続すると、Skypeにオーディオを送信するために必要なオーディオバッファーが得られる「入力」側がわかります。私が理解する必要があるのは、そのグラフの論理的な逆です。Skypeからソケット経由でオーディオバッファを受信します。TSampleGrabberを補完するフィルターを持つグラフを作成する必要があります。つまり、TSampleGrabberのように新しいオーディオが利用可能になったときに発生するイベント中にオーディオバッファを配信する代わりに、グラフにフィードするために新しいオーディオが必要なときに発生する同様のイベントを持つTFilterがあります。この「出力」の最後に

誰かがこれを行う方法を知っていますか?もちろん、これを行うために、独自のカスタムフィルターCOMオブジェクトを作成することは避けたいと思います。DirectXフィルターグラフにミックスされるカスタムオーディオバッファーを受け入れる既存のTFilterがあることを期待しています。

4

1 に答える 1

2

データインジェクションフィルターの一般的な開始点は、プッシュソースフィルターサンプルです。これにより、出力専用ピンを備えたフィルターが作成され、DirectShowパイプラインにデータが挿入されます。データは任意のタイプであり、通常はビデオまたはオーディオです。

DelphiとDSPackについて述べたように、後者にはこのサンプルが移植されています(\ Demos \ D6-D7 \ Filters \ PushSourceを参照)。

于 2011-10-03T05:36:05.730 に答える