IMFPMediaPlayer::GetDuration 方法 (mfplay.h)

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

获取当前媒体项的播放持续时间。

语法

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

parameters

[in] guidPositionType

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

含义
MFP_POSITIONTYPE_100NS
100 纳秒单位。

pvDurationValue 中返回的值是ULARGE_INTEGER

  • 变量类型 (vt) : VT_UI8
  • Variant 成员: uhVal

[out] pvDurationValue

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

返回值

此方法可以返回其中一个值。

返回代码 说明
S_OK
方法成功。
MF_E_ATTRIBUTENOTFOUND
媒体源没有持续时间。 实时源(如摄像机)可能会发生此错误。
MF_E_INVALIDREQUEST
没有当前媒体项。

注解

此方法计算播放持续时间,同时考虑媒体项的开始和停止时间。 若要设置开始和停止时间,请在媒体项上调用 IMFPMediaItem::SetStartStopPosition 。 若要获取基础媒体文件的实际持续时间(无论启动和停止时间如何),请调用 IMFPMediaItem::GetDuration

例如,假设你加载了一个 30 秒的音频文件,并将开始时间设置为 2 秒,将停止时间设置为 10 秒。 IMFPMediaItem::GetDuration 方法将返回 30 秒,但 IMFPMediaPlayer::GetDuration 方法将返回 8 秒。

要求

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

另请参阅

IMFPMediaPlayer

使用 MFPlay 播放音频/视频