IMFPMediaItem::GetDuration 方法 (mfplay.h)

重要 废弃。 此 API 可能会从 Windows 的未来版本中删除。 应用程序应使用 媒体会话 进行播放。
 

获取媒体项的持续时间。

语法

HRESULT GetDuration(
  [in]  REFGUID     guidPositionType,
  [out] PROPVARIANT *pvDurationValue
);

parameters

[in] guidPositionType

指定持续时间值的时间单位。 定义了以下值。

含义
MFP_POSITIONTYPE_100NS
100 纳秒单位。

pvDurationValue 中返回的值是LARGE_INTEGER

  • 变量类型 (vt) :VT_I8
  • Variant 成员: hVal

[out] pvDurationValue

指向接收持续时间的 PROPVARIANT 的指针。

返回值

如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

方法返回内容的总持续时间,而不考虑通过 IMFPMediaItem::SetStartStopPosition 设置的任何值。

示例

#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;
}

要求

   
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 mfplay.h

另请参阅

如何获取播放持续时间

IMFPMediaItem

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