IMFPMediaPlayer::GetPosition メソッド (mfplay.h)

大事な 廃止。 この API は、Windows の今後のリリースから削除される可能性があります。 アプリケーションでは、再生に メディア セッション を使用する必要があります。
 

現在の再生位置を取得します。

構文

HRESULT GetPosition(
  [in]  REFGUID     guidPositionType,
  [out] PROPVARIANT *pvPositionValue
);

パラメーター

[in] guidPositionType

再生位置の時間単位を指定します。 次の値が定義されています。

意味
MFP_POSITIONTYPE_100NS
100 ナノ秒単位。

pvPositionValue で返される値はLARGE_INTEGERです。

  • バリアント型 (vt): VT_I8
  • Variant メンバー: hVal

[out] pvPositionValue

再生位置を受け取る PROPVARIANT へのポインター。

戻り値

このメソッドは HRESULT を返します。 有効な値を次の表に示しますが、これ以外にもあります。

リターン コード 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
引数が無効です。
MF_E_INVALIDREQUEST
メディア項目がキューに登録されていません。
MF_E_SHUTDOWN
オブジェクトの Shutdown メソッドが呼び出されました。

注釈

再生位置は、メディア項目の開始時刻を基準にして計算されます。これは、 IMFPMediaItem::SetStartStopPosition を呼び出すことによって指定できます。 たとえば、開始時刻を 20 秒に設定し、ソース期間が 60 秒の場合、 GetPosition によって返される値の範囲は 0 ~ 40 秒です。

次のコードは、100 ナノ秒単位の現在位置を LONGLONG 値として取得します。

HRESULT GetPositionHNS(
    IMFPMediaPlayer *pPlayer, 
    LONGLONG *phnsPosition    // Receives the position in hns.
)
{
    HRESULT hr = S_OK;

    PROPVARIANT var;
    PropVariantInit(&var);

    *phnsPosition = 0;

    hr = pPlayer->GetPosition(MFP_POSITIONTYPE_100NS, &var);

    if (SUCCEEDED(hr))
    {
        *phnsPosition = var.hVal.QuadPart;
    }

    PropVariantClear(&var);
    return hr;
}

要件

要件
サポートされている最小のクライアント Windows 7 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー mfplay.h

こちらもご覧ください

IMFPMediaPlayer

オーディオ/ビデオ再生に MFPlay を使用する