如何获取播放持续时间
[MFPlay 可用于“要求”部分中指定的操作系统。 它可能在后续版本中变更或不可用。 ]
本主题介绍如何使用 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。
相关主题
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈