如何取得播放持續時間
[與此頁面 MFPlay 相關聯的功能是舊版功能。 它已被 MediaPlayer 和 IMFMediaEngine 取代。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft強烈建議新程式代碼盡可能使用 MediaPlayer 和 IMFMediaEngine,而不是 DirectShow。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]
本主題描述如何使用 MFPlay 取得媒體檔案的播放持續時間。
取得播放持續時間
- 呼叫 IMFPMediaPlayer::CreateMediaItemFromURL 或 IMFPMediaPlayer::CreateMediaItemFromObject 來建立檔案的媒體專案。
- 呼叫 IMFPMediaItem::GetDuration。 為第一個參數指定 MFP_POSITIONTYPE_100NS 。 持續時間會以包含LARGE_INTEGER值的 PROPVARIANT 傳回。 持續時間是以 100 奈秒為單位來指定。
下列範例顯示步驟 2:
#include <propvarutil.h>
HRESULT GetPlaybackDuration(IMFPMediaItem *pItem, ULONGLONG *phnsDuration)
{
PROPVARIANT var;
HRESULT hr = pItem->GetDuration(MFP_POSITIONTYPE_100NS, &var);
if (SUCCEEDED(hr))
{
hr = PropVariantToUInt64(var, phnsDuration);
PropVariantClear(&var);
}
return hr;
}
需求
MFPlay 需要 Windows 7。
相關主題