ISampleGrabberCB::BufferCB 方法

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

注意

[已弃用。 此 API 可能会从 Windows 的未来版本中删除。]

 

BufferCB 方法是接收指向示例缓冲区的指针的回调方法。

语法

HRESULT BufferCB(
   double SampleTime,
   BYTE   *pBuffer,
   long   BufferLen
);

参数

SampleTime

示例的开始时间(以秒为单位)。

pBuffer

指向包含示例数据的缓冲区的指针。 数据的格式取决于样本抓取器输入引脚的媒体类型。 若要获取媒体类型,请调用 ISampleGrabber::GetConnectedMediaType

BufferLen

pBuffer 指向的缓冲区的长度(以字节为单位)。

返回值

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

备注

此回调方法接收指向最新媒体示例中数据的指针。

注意

此方法接收指向原始示例数据的指针,而不是副本。 原始文档错误地指出 pBuffer 包含数据的副本。

 

若要设置回调,请调用 ISampleGrabber::SetCallback

注意

头文件 Qedit.h 与版本 7 之后的 Direct3D 标头不兼容。

 

注意

若要获取 Qedit.h,请下载适用于 Windows Vista 和 .NET Framework 3.0 的Microsoft Windows SDK更新。 Qedit.h 在 Windows 7 和 .NET Framework 3.5 Service Pack 1 的Microsoft Windows SDK中不可用。

 

要求

要求
标头
Qedit.h

Strmiids.lib

另请参阅

错误和成功代码

ISampleGrabberCB 接口