IMFASFIndexer::GetSeekPositionForValue 方法 (wmcontainer.h)
给定所需的查找时间,获取客户端应从中开始读取数据的偏移量。
语法
HRESULT GetSeekPositionForValue(
[in] const PROPVARIANT *pvarValue,
[in] ASF_INDEX_IDENTIFIER *pIndexIdentifier,
[out] QWORD *pcbOffsetWithinData,
[out] MFTIME *phnsApproxTime,
[out] DWORD *pdwPayloadNumberOfStreamWithinPacket
);
参数
[in] pvarValue
要获取其位置的索引项的值。 此值的格式因索引标识符中指定的索引类型而异。 对于基于时间的索引,变体类型 为VT_I8 值是所需的搜寻时间(以 100 纳秒为单位)。
[in] pIndexIdentifier
指向标识流编号和索引类型的 ASF_INDEX_IDENTIFIER 结构的指针。
[out] pcbOffsetWithinData
接收 ASF 数据对象的数据段内的偏移量。 偏移量以字节为单位,相对于数据包 0 的开头。 偏移量提供客户端应从流中开始读取的起始位置。 此位置可能与请求的查找时间不完全对应。
对于反向播放,如果所需查找位置后不存在关键帧,此参数将接收 值MFASFINDEXER_READ_FOR_REVERSEPLAYBACK_OUTOFDATASEGMENT。 在这种情况下,搜寻位置应为数据段末尾的 1 个字节。
[out] phnsApproxTime
接收位于返回的偏移量处的大致数据时间戳,该偏移量返回在 参数中 。 此值的准确性等于 ASF 索引的索引间隔,通常约为 1 秒。
- 如果在 pIndexIdentifier 中指定的索引类型 ( 时间索引) GUID_NULL,则此参数可以为 NULL。
- 对于所有其他索引类型,此参数必须为 NULL。
[out] pdwPayloadNumberOfStreamWithinPacket
接收有效负载的有效负载号,该有效负载包含指定流的信息。 数据包可以包含多个有效负载,每个有效负载都包含不同流的数据。 此参数可以为 NULL。
返回值
该方法返回 HRESULT。 可能的值包括(但并不限于)下表中的项。
返回代码 | 说明 |
---|---|
|
方法成功。 |
|
请求的查找时间超出范围。 |
|
指定的流不存在指定类型的索引。 |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | wmcontainer.h |
Library | Mfuuid.lib |