IMFMediaSession::Start 方法 (mfidl.h)

启动媒体会话。

语法

HRESULT Start(
  [in] const GUID        *pguidTimeFormat,
  [in] const PROPVARIANT *pvarStartPosition
);

参数

[in] pguidTimeFormat

指向 GUID 的指针,该 GUID 指定 pvarStartPosition 参数的时间格式。 此参数可以为 NULL。 值 NULL 等效于传入 GUID_NULL

定义了以下时间格式 GUID:

含义
GUID_NULL
演示时间。 pvarStartPosition 参数必须具有以下 PROPVARIANT 类型之一。
  • VT_I8pvarStartPosition 参数包含相对于演示文稿开头的起始位置(以 100 纳秒为单位)。
  • VT_EMPTY:播放从当前位置开始。
所有媒体源都支持此时间格式。
MF_TIME_FORMAT_SEGMENT_OFFSET
段偏移量。 Sequencer 源支持此时间格式。 开始时间是段内的偏移量。

调用 MFCreateSequencerSegmentOffset 函数,为 pvarStartPosition 参数创建 PROPVARIANT 值。

MF_TIME_FORMAT_ENTRY_RELATIVE
注意 需要 Windows 7 或更高版本。
 
跳到播放列表条目。 pvarStartPosition 参数指定播放列表项相对于当前条目的索引。 例如,值 2 跳过转发两个条目。 若要向后跳过,请传递负值。 PROPVARIANT 类型为VT_I4

如果媒体源支持此时间格式, 则 IMFMediaSource::GetCharacteristics 方法将返回以下一个或两个标志:

  • MFMEDIASOURCE_CAN_SKIPFORWARD
  • MFMEDIASOURCE_CAN_SKIPBACKWARD

[in] pvarStartPosition

指向 PROPVARIANT 的指针,指定播放的起始位置。 此参数的含义和数据类型由 pguidTimeFormat 参数指示。

返回值

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

返回代码 说明
S_OK
方法成功。
MF_E_INVALIDREQUEST
无法在媒体会话的当前状态下执行该操作。
MF_E_SHUTDOWN
媒体会话已关闭。

注解

调用此方法时,媒体会话将启动演示时钟并开始处理媒体示例。

此方法是异步方法。 方法完成后,媒体会话将发送 MESessionStarted 事件。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 mfidl.h
Library Mfuuid.lib

另请参阅

IMFMediaSession