Microsoft DirectX 8.0 |
フィルタ グラフは IMediaControl オブジェクトを公開し、アプリケーションがグラフ内のフィルタを使ってメディアのストリーミングを制御できるようにする。インターフェイスは、データのストリーミングのトランスポート、ポーズ、および停止を処理するメソッドを備えている。また、インターフェイスは、メディア ファイルを再生するグラフを作成するための簡単なメソッドをアプリケーションに提供する。
プロパティ
FilterCollection グラフ内の現在のフィルタを表す IFilterInfo オブジェクトのコレクションを取得する。 RegFilterCollection レジストリ内の利用可能なフィルタを表す IRegFilterInfo オブジェクトのコレクションを取得する。
メソッド
AddSourceFilter 指定されたファイル名を読み取れるソース フィルタをグラフに追加する。 GetState フィルタ グラフの状態を取得する。 Pause フィルタ グラフ内のすべてのフィルタをポーズさせる。 RenderFile 特定のファイルの再生に必要なすべてのフィルタを追加し、接続する。 Run フィルタ グラフ全体を実行モードに切り替える。 Stop フィルタ グラフ内のすべてのフィルタを停止状態に切り替える。
指定されたファイル名を読み取れるソース フィルタをグラフに追加し、作成された IFilterInfo オブジェクトを返す。
構文
objMediaControl.AddSourceFilter string, objFilterInfo
指定項目
- objMediaControl
- 評価結果が IMediaControl オブジェクトになるオブジェクト式。
- string
- ソース メディアが格納されているファイルの名前。
- objFilterInfo
- 指定されたソース ファイルに対して作成されたソース フィルタである IFilterInfo オブジェクト。
グラフ内のフィルタを表す IFilterInfo オブジェクトのコレクションを取得する。IAMCollection オブジェクトを返す。
構文
Set objCollection = objMediaControl.FilterCollection
指定項目
- objCollection
- フィルタ グラフ内に現在あるフィルタのコレクションを表す IAMCollection オブジェクト。
- objMediaControl
- 評価結果が IMediaControl オブジェクトになるオブジェクト式。
現在の状態値を示す Long 型の整数を返す。
構文
objMediaControl.GetState msTimeout, State
指定項目
- objMediaControl
- 評価結果が IMediaControl オブジェクトになるオブジェクト式。
- msTimeout
- ミリ秒単位で表すタイムアウトの時間幅。
- State
- 現在の状態が格納される Long 型の値。この引数は、次のいずれかになる。
State_Paused メディア ソースがポーズしている。 State_Running メディア ソースがトランスポートしている。 State_Stopped メディア ソースが停止している。
戻り値
状態の移行が完了していない場合は実行時エラー 567 を返し、状態の移行が完了していれば 0 を返す。
注意
すべての状態移行は、同期を取って行われるわけではない。たとえば、通常 Pause メソッドがすぐに返された場合でも、レンダラでデータが準備できるまで、グラフはポーズ モードへの移行を完了しない。このメソッドは、状態移行が完了するまでゼロを返さない。
ゼロ以外のタイムアウトを指定すると、このメソッドはグラフが中間状態から移行するまで、グラフに指定されたミリ秒まで待つ。状態移行が完了する前にタイムアウトの期限が切れると、戻りコードは 567 となり、返される状態はグラフの移行先の状態 (State_Stopped、State_Paused、または State_Running) となる。
レジストリ内の利用可能なフィルタを表す IRegFilterInfo オブジェクトのコレクションを取得する。
構文
Set objCollection = objMediaControl.RegFilterCollection
指定項目
- objCollection
- IAMCollection object that contains IRegFilterInfo objects.
- objMediaControl
- 評価結果が IMediaControl オブジェクトになるオブジェクト式。
戻り値
IAMCollection オブジェクトを返す。
フィルタ グラフ内のすべてのフィルタをポーズさせる。
構文
objMediaControl.Pause
指定項目
- objMediaControl
- 評価結果が IMediaControl オブジェクトになるオブジェクト式。
注意
ポーズ状態では、フィルタはデータを処理するが、レンダリングは行わない。データはフィルタ グラフにプッシュ ダウンされ、バッファリングで許可される限り、変換フィルタによって処理される。 ビデオなど、静的にレンダリング可能なメディア タイプに、ポーズ モードでレンダリングされる静的なポスター フレームがある場合を除き、データはレンダリングされない。そのため、フィルタ グラフをポーズ状態にすると、実行状態になったときにすぐにレンダリングされるキューに入れられる。
指定されたファイルを再生するために必要なフィルタを追加、接続する。
構文
objMediaControl.RenderFile string
指定項目
- objMediaControl
- 評価結果が IMediaControl オブジェクトになるオブジェクト式。
- string
- レンダリングするファイルの名前。
注意
このメソッドを使うと、アプリケーションはレンダリングするメディア ファイルの名前をグラフ マネージャに渡すことができる。フィルタ グラフ マネージャは、このファイルを再生するために必要なフィルタのグラフを構築する。
フィルタ グラフ全体を実行状態に切り替える。
構文
objMediaControl.Run
指定項目
- objMediaControl
- 評価結果が IMediaControl オブジェクトになるオブジェクト式。
注意
フィルタ グラフが停止状態にある場合、このメソッドは最初にグラフをポーズしてから実行する。
エラー値が返された場合、グラフ内の一部のフィルタは、正しく実行状態になっている可能性がある。マルチストリーム グラフでは、ストリーム全体が正しく再生されている可能性がある。アプリケーションは、実行を停止するかどうかを判定しなければならない。
フィルタ グラフ内のすべてのフィルタを停止状態に切り替える。
構文
objMediaControl.Stop
指定項目
- objMediaControl
- 評価結果が IMediaControl オブジェクトになるオブジェクト式。
注意
このモードでは、フィルタはリソースを解放し、データは処理されない。フィルタが実行状態の場合、このメソッドはフィルタをポーズしてから停止する。これによって、ビデオ レンダラは、停止中にポスター フレームを表示するために、現在のフレームをコピーできる。