IMFSample::GetBufferByIndex 方法 (mfobjects.h)

按索引从样本中获取缓冲区。

注意 在大多数情况下,使用 IMFSample::ConvertToContiguousBuffer 方法更安全。 如果示例包含多个缓冲区, 则 ConvertToContiguousBuffer 方法会将它们替换为单个缓冲区,将原始数据复制到该缓冲区,并将新缓冲区返回给调用方。 复制操作最多发生一次。 在后续调用中,不会复制任何数据。
 

语法

HRESULT GetBufferByIndex(
  [in]  DWORD          dwIndex,
  [out] IMFMediaBuffer **ppBuffer
);

参数

[in] dwIndex

缓冲区的索引。 若要查找示例中的缓冲区数,请调用 IMFSample::GetBufferCount。 缓冲区从零开始编制索引。

[out] ppBuffer

接收指向 IMFMediaBuffer 接口的 指针。 调用方必须释放接口。

返回值

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

返回代码 说明
S_OK
方法成功。
E_INVALIDARG
NULL 指针参数,或索引已超过范围。

注解

一个示例可能包含多个缓冲区。 使用 GetBufferByIndex 方法枚举各个缓冲区。

如果安装了 Windows Media Format 11 SDK 可再发行组件,则此接口在以下平台上可用:

  • Windows XP with Service Pack 2 (SP2) 及更高版本。
  • Windows XP Media Center Edition 2005 KB900325 (windows XP Media Center Edition 2005) 和KB925766 (2006 年 10 月 Windows XP Media Center Edition 更新汇总) 安装。

要求

要求
最低受支持的客户端 Windows Vista [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2008 [桌面应用 | UWP 应用]
目标平台 Windows
标头 mfobjects.h (包括 Mfidl.h)
Library Mfuuid.lib

另请参阅

IMFSample

IMFSample::ConvertToContiguousBuffer

媒体示例