IMediaSeeking::GetCurrentPosition
GetCurrentPosition メソッドは、ストリームの合計時間幅を基準とする、現在の位置を取得する。
構文
HRESULT GetCurrentPosition(
LONGLONG *pCurrent
);
パラメータ
pCurrent
[out] 現在位置を受け取る変数へのポインタ (現在のタイム フォーマットの単位)。
戻り値
HRESULT 値を返す。可能な値は次のとおりである。
値 | 説明 |
S_OK | 成功。 |
E_NOTIMPL | メソッドはサポートされていない。 |
E_POINTER | NULL ポインタ引数。 |
注意
このメソッドは再生が到達した現在位置を返す。その値は再生速度と開始タイムを無視する。たとえば、速度に 2.0 を設定し、開始タイムが 5 秒だとすると、グラフを 4 秒実行すると現在の位置は 13.0 秒となる (5 + 4 x 2.0)。戻り値は、現在のタイム フォーマットの単位で表される。現在のタイム フォーマットを確認するには、GetTimeFormat メソッドを呼び出すこと。
グラフがポーズまたは停止している場合、現在位置は再生が再開されるポイントとなる。
フィルタ グラフ マネージャは、現在のストリーム タイムから位置を計算するので、グラフのフィルタに照会することはない。ファイルの再生では、これによって再生がストリーム タイムに同期されるため、正確な結果が得られる。ファイルの書き込みでは、結果は正確にはならない。ファイルを書き込むグラフで現在の位置を取得するには、マルチプレクサ フィルタに照会すること。ただし、ライブ キャプチャでは、位置は適切なものとはならない。
戻り値は、現在のタイム フォーマットの単位で表される。デフォルトのタイム フォーマットは、REFERENCE_TIME 単位 (100 ナノ秒) である。タイム フォーマットを変更するには、IMediaSeeking::SetTimeFormat メソッドを使う。
参照