Microsoft DirectX 8.0

IMediaControl オブジェクト

フィルタ グラフは IMediaControl オブジェクトを公開し、アプリケーションがグラフ内のフィルタを使ってメディアのストリーミングを制御できるようにする。インターフェイスは、データのストリーミングのトランスポート、ポーズ、および停止を処理するメソッドを備えている。また、インターフェイスは、メディア ファイルを再生するグラフを作成するための簡単なメソッドをアプリケーションに提供する。

プロパティ

FilterCollection グラフ内の現在のフィルタを表す IFilterInfo オブジェクトのコレクションを取得する。
RegFilterCollection レジストリ内の利用可能なフィルタを表す IRegFilterInfo オブジェクトのコレクションを取得する。

メソッド

AddSourceFilter 指定されたファイル名を読み取れるソース フィルタをグラフに追加する。
GetState フィルタ グラフの状態を取得する。
Pause フィルタ グラフ内のすべてのフィルタをポーズさせる。
RenderFile 特定のファイルの再生に必要なすべてのフィルタを追加し、接続する。
Run フィルタ グラフ全体を実行モードに切り替える。
Stop フィルタ グラフ内のすべてのフィルタを停止状態に切り替える。

AddSourceFilter メソッド (IMediaControl オブジェクト)

IMediaControl オブジェクト

指定されたファイル名を読み取れるソース フィルタをグラフに追加し、作成された IFilterInfo オブジェクトを返す。

構文

objMediaControl.AddSourceFilter string, objFilterInfo

指定項目

objMediaControl
評価結果が IMediaControl オブジェクトになるオブジェクト式。
string
ソース メディアが格納されているファイルの名前。
objFilterInfo
指定されたソース ファイルに対して作成されたソース フィルタである IFilterInfo オブジェクト。

FilterCollection プロパティ (IMediaControl オブジェクト)

IMediaControl オブジェクト

グラフ内のフィルタを表す IFilterInfo オブジェクトのコレクションを取得する。IAMCollection オブジェクトを返す。

構文

Set objCollection = objMediaControl.FilterCollection

指定項目

objCollection
フィルタ グラフ内に現在あるフィルタのコレクションを表す IAMCollection オブジェクト。
objMediaControl
評価結果が IMediaControl オブジェクトになるオブジェクト式。

GetState メソッド (IMediaControl オブジェクト)

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) となる。

RegFilterCollection プロパティ (IMediaControl オブジェクト)

IMediaControl オブジェクト

レジストリ内の利用可能なフィルタを表す IRegFilterInfo オブジェクトのコレクションを取得する。

構文

Set objCollection = objMediaControl.RegFilterCollection

指定項目

objCollection
IAMCollection object that contains IRegFilterInfo objects.
objMediaControl
評価結果が IMediaControl オブジェクトになるオブジェクト式。

戻り値

IAMCollection オブジェクトを返す。

Pause メソッド (IMediaControl オブジェクト)

IMediaControl オブジェクト

フィルタ グラフ内のすべてのフィルタをポーズさせる。

構文

objMediaControl.Pause

指定項目

objMediaControl
評価結果が IMediaControl オブジェクトになるオブジェクト式。

注意

ポーズ状態では、フィルタはデータを処理するが、レンダリングは行わない。データはフィルタ グラフにプッシュ ダウンされ、バッファリングで許可される限り、変換フィルタによって処理される。 ビデオなど、静的にレンダリング可能なメディア タイプに、ポーズ モードでレンダリングされる静的なポスター フレームがある場合を除き、データはレンダリングされない。そのため、フィルタ グラフをポーズ状態にすると、実行状態になったときにすぐにレンダリングされるキューに入れられる。

RenderFile メソッド (IMediaControl オブジェクト)

IMediaControl オブジェクト

指定されたファイルを再生するために必要なフィルタを追加、接続する。

構文

objMediaControl.RenderFile string

指定項目

objMediaControl
評価結果が IMediaControl オブジェクトになるオブジェクト式。
string
レンダリングするファイルの名前。

注意

このメソッドを使うと、アプリケーションはレンダリングするメディア ファイルの名前をグラフ マネージャに渡すことができる。フィルタ グラフ マネージャは、このファイルを再生するために必要なフィルタのグラフを構築する。

Run メソッド (IMediaControl オブジェクト)

IMediaControl オブジェクト

フィルタ グラフ全体を実行状態に切り替える。

構文

objMediaControl.Run

指定項目

objMediaControl
評価結果が IMediaControl オブジェクトになるオブジェクト式。

注意

フィルタ グラフが停止状態にある場合、このメソッドは最初にグラフをポーズしてから実行する。

エラー値が返された場合、グラフ内の一部のフィルタは、正しく実行状態になっている可能性がある。マルチストリーム グラフでは、ストリーム全体が正しく再生されている可能性がある。アプリケーションは、実行を停止するかどうかを判定しなければならない。

Stop メソッド (IMediaControl オブジェクト)

IMediaControl オブジェクト

フィルタ グラフ内のすべてのフィルタを停止状態に切り替える。

構文

objMediaControl.Stop

指定項目

objMediaControl
評価結果が IMediaControl オブジェクトになるオブジェクト式。

注意

このモードでは、フィルタはリソースを解放し、データは処理されない。フィルタが実行状態の場合、このメソッドはフィルタをポーズしてから停止する。これによって、ビデオ レンダラは、停止中にポスター フレームを表示するために、現在のフレームをコピーできる。