再生の制御のためのクロックを作成し、音声と映像ストリームを同期させます。これのインスタンスは、IMFMediaSessionから次のように取得できます。
IMFPresentationClock* pPresentationClock;
IMFClock* pClock;
HRESULT hr = pMediaSession->GetClock(&pClock);
if (SUCCEEDED(hr))
{
hr = pClock->QueryInterface(IID_PPV_ARGS(&pPresentationClock));
if (FAILED(hr))
{
goto done;
}
}
Seeking, Fast Forward, and Reverse Play - Win32 apps | Microsoft Learn
ただしIMFMediaSessionから取得したPresentation Clockは、これの制御に用いてはなりません。Remarks - IMFMediaSession::GetClock (mfidl.h) | Microsoft Learn
最新のクロック タイムを取得できます。
HRESULT GetTime( MFTIME *phnsClockTime );IMFPresentationClock::GetTime (mfidl.h) | Microsoft Learn