IMediaPosition インターフェイス
ストリーム内の位置をシークするメソッドを持つ。
IMediaSeeking インターフェイスはこのインターフェイスを強化している。C/C++ で書かれたアプリケーションは IMediaPosition の代わりに IMediaSeeking を使うべきである。しかし、IMediaSeeking は Automation と互換性がないので、Microsoft® Visual Basic® で書かれたアプリケーションは代わりに IMediaPosition を使わなければならない。
このインターフェイスは個々のフィルタが行うのと同様にフィルタ グラフ マネージャによって公開されている。アプリケーションは IMediaPosition インターフェイス ポインタをフィルタからではなくフィルタ グラフ マネージャから取得すべきである。フィルタ グラフ マネージャは、メソッド呼び出しをすべてのレンダリング フィルタに割り当てる。レンダリング フィルタはその呼び出しをソース フィルタへのアップストリームに伝達する。イベントのこのシーケンスによってすべてのストリームは同期される。
配布した呼び出しがエラーを返したら、フィルタ グラフ マネージャは受け取った最初のエラー値を返す。この場合、配布した呼び出しのいくつかが成功している可能性がある。しかし、配布したすべての呼び出しが E_NOTIMPL を返すまで、フィルタ グラフは E_NOTIMPL を返さない。グラフ内の少なくとも 1 つのフィルタがそのメソッドを実装すると、フィルタ グラフ マネージャは E_NOTIMPL を返さない。
フィルタ開発者 : このメソッドを実装してはならない。代わりに IMediaSeeking を実装すること。そのフィルタが IMediaSeeking をサポートする場合、フィルタ グラフ マネージャは自動的に IMediaPosition への呼び出しを処理する。
IMediaPosition インターフェイスは、IDispatch から継承するメソッド以外に以下のメソッドも公開する。
メソッド | 説明 |
get_Duration | ストリームの時間幅を取得する。 |
put_CurrentPosition | ストリームの合計時間幅を基準とする、現在の位置を設定する。 |
get_CurrentPosition | ストリームの合計時間幅を基準とする、現在の位置を取得する。 |
get_StopTime | ストリームの時間幅を基準として、再生が停止するタイムを取得する。 |
put_StopTime | ストリームの全時間幅を基準として、再生が停止するタイムを設定する。 |
get_PrerollTime | 開始位置の前にキューに入るデータの量を取得する。 |
put_PrerollTime | 開始位置の前にキューに入るデータの量を設定する。 |
put_Rate | 再生レートを設定する。 |
get_Rate | 再生レートを取得する。 |
CanSeekForward | フィルタ グラフがストリームの順方向にシーク可能かどうかを確認する。 |
CanSeekBackward | フィルタ グラフがストリームの逆方向にシーク可能かどうかを確認する。 |