次の方法で共有


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 フィルタ グラフがストリームの逆方向にシーク可能かどうかを確認する。