IMFSourceReader::SetCurrentPosition 方法 (mfreadwrite.h)

在媒体源中查找新位置。

语法

HRESULT SetCurrentPosition(
  [in] REFGUID        guidTimeFormat,
  [in] REFPROPVARIANT varPosition
);

参数

[in] guidTimeFormat

指定 时间格式的 GUID。 时间格式定义 varPosition 参数的单位。 为所有媒体源定义了以下值:

含义
GUID_NULL
100 纳秒单位。
 

某些媒体源可能支持其他值。

[in] varPosition

开始播放的位置。 单位由 guidTimeFormat 参数指定。 如果 guidTimeFormat 参数 GUID_NULL,请将变体类型设置为 VT_I8

返回值

该方法返回 HRESULT。 可能的值包括(但并不限于)下表中的项。

返回代码 说明
S_OK
方法成功。
MF_E_INVALIDREQUEST
一个或多个示例请求仍处于挂起状态。

注解

SetCurrentPosition 方法不保证精确查找。 搜寻的准确性取决于媒体内容。 如果媒体内容包含视频流, SetCurrentPosition 方法通常会在所需位置之前查找最近的关键帧。 关键帧之间的距离取决于多个因素,包括编码器实现、视频内容以及用于对内容进行编码的特定编码设置。 例如,单个视频文件 (关键帧之间的距离可能会有所不同,具体取决于场景复杂性) 。

查找后,应用程序应调用 IMFSourceReader::ReadSample 并前进到所需位置。

如果安装了适用于 Windows Vista 的平台更新补充,则此接口在 Windows Vista 上可用。

要求

要求
最低受支持的客户端 适用于 Windows Vista 的 Windows 7、Windows Vista 和平台更新补充 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2008 R2 [桌面应用 |UWP 应用]
目标平台 Windows
标头 mfreadwrite.h

另请参阅

IMFSourceReader

源读取者