MFCreateSequencerSegmentOffset 函数 (mfidl.h)

创建可用于在排序程序源演示文稿中查找的 PROPVARIANT

语法

HRESULT MFCreateSequencerSegmentOffset(
  [in]  MFSequencerElementId dwId,
  [in]  MFTIME               hnsOffset,
  [out] PROPVARIANT          *pvarSegmentOffset
);

参数

[in] dwId

Sequencer 元素标识符。 此值指定要开始播放的段。 元素标识符在 IMFSequencerSource::AppendTopology 方法中返回。

[in] hnsOffset

段内的起始位置(以 100 纳秒为单位)。

[out] pvarSegmentOffset

指向 PROPVARIANT 的指针。 方法在 PROPVARIANT 中填充执行查找操作所需的信息。 调用方必须通过调用 PropVariantClear 释放 PROPVARIANT

返回值

如果此函数成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

pvarSegmentOffset 中返回的 PROPVARIANT 可用于 IMFMediaSession::Start 方法中的 pvarStartPosition 参数。 使用时间格式 GUID MF_TIME_FORMAT_SEGMENT_OFFSET

示例

// Skips to the specified segment in the sequencer source

HRESULT CPlaylist::SkipTo(DWORD index)
{
    if (index >= m_count)
    {
        return E_INVALIDARG;
    }

    MFSequencerElementId ID = m_segments[index].SegmentID;

    PROPVARIANT var;

    HRESULT hr = MFCreateSequencerSegmentOffset(ID, NULL, &var);
    
    if (SUCCEEDED(hr))
    {
        hr = m_pSession->Start(&MF_TIME_FORMAT_SEGMENT_OFFSET, &var);
        PropVariantClear(&var);
    }
    return hr;
}

要求

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

另请参阅

MFTIME

媒体基础函数

Sequencer Source

使用 Sequencer 源