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 メソッドを使う。

参照