如何获取播放持续时间

[MFPlay 可用于“要求”部分中指定的操作系统。 它可能在后续版本中变更或不可用。 ]

本主题介绍如何使用 MFPlay 获取媒体文件的播放持续时间。

获取播放持续时间

  1. 调用 IMFPMediaPlayer::CreateMediaItemFromURLIMFPMediaPlayer::CreateMediaItemFromObject 为文件创建媒体项。
  2. 调用 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。

使用 MFPlay 进行音频/视频播放