次の方法で共有


IAMStreamControl インターフェイス

IAMStreamControl インターフェイスは、フィルタ上の個々のストリームを制御するメソッドを提供する。いくつかのフィルタ上のピンは、このインターフェイスを公開している。たとえば、AVI Mux フィルタは、その入力ピンでこのインターフェイスをサポートし、オーディオ キャプチャ フィルタWDM ビデオ キャプチャ フィルタは、それぞれの出力ピンでこのインターフェイスをサポートする。

このインターフェイスによって、アプリケーションは、指定の時間にストリームのオンとオフを切り替えることができる。たとえば、ビデオのプレビュー中にオーディオ ストリームをオフにして音声を消すことができる。キャプチャ アプリケーションの場合は、このインターフェイスを使うことで、キャプチャの正確な開始タイムと終了タイムを指定したり、キャプチャ ストリームとプレビュー ストリームを個別に制御できる。

このインターフェイスを使うには、IAMStreamControl::StartAt メソッドを呼び出してピンがデータ送信をいつ開始するかを指定し、IAMStreamControl::StopAt メソッドを呼び出して、データ送信をいつ終了するかを指定する。その後フィルタ グラフ マネージャで IMediaControl::Run を呼び出し、フィルタ グラフを実行する。すべてのタイムは、グラフの実行開始タイムに相対的である。

このインターフェイスを使う場合は、次の制限事項に注意すること。

  • フィルタ グラフに基準クロックがなければならない。
  • ハードウェア オーバーレイを伴うキャプチャ カード上のプレビュー ピンは、このインターフェイスをサポートしない。
  • ビデオとオーディオをインターリーブ AVI ファイルにキャプチャしている場合、AVI Mux フィルタは両方のストリームを必要とする。一方のストリームを停止すると、フィルタはデータをインターリーブできない。詳細については、「IConfigInterleaving インターフェイス」を参照すること。

アプリケーションによっては、ICaptureGraphBuilder2::ControlStream メソッドの方が便利な場合がある。これは、このメソッドがグラフ レベルでのストリーム制御をサポートするため、各フィルタとピンを列挙する必要がないからである。

フィルタ開発者への注意点 : CBaseStreamControl 基底クラスは、このインターフェイスを実装する。

IAMStreamControl インターフェイスは、IUnknown から継承されるメソッドに加え、以下のメソッドを公開する。

メソッド 説明
StartAt ストリーミング データ送信の開始タイムをピンに通知する。
StopAt ピンに対して処理とデータ送信の終了タイムを指定する。
GetInfo 現在のストリーミングの設定に関する情報を取得する。

参照