IAsyncReader::SyncReadAligned 方法 (strmif.h)

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

方法 SyncReadAligned 执行同步读取。 方法将阻止,直到请求完成。 文件位置和缓冲区地址必须对齐;检查所需的对齐方式的分配器属性。

语法

HRESULT SyncReadAligned(
  IMediaSample *pSample
);

参数

pSample

指向调用方提供的媒体示例 的 IMediaSample 接口的指针。

返回值

返回 HRESULT 值。 可能的值包括以下值。

返回代码 说明
VFW_E_BADALIGN
对齐方式无效。
S_FALSE
检索的字节数少于请求的字节数。 (可能已到达文件的末尾。)
S_OK
成功。

注解

在调用此方法之前,请从引脚的分配器中检索媒体示例。 使用请求的字节偏移量(包括第一个和最后一个)乘以 10,000,000 的时间戳示例。 字节偏移量相对于流的开始时间。

开始和停止位置应与引脚连接时确定的对齐方式匹配。 否则,方法将返回VFW_E_BADALIGN。 如果商定的对齐方式比流的实际对齐方式粗糙,则停止位置可能会超过实际持续时间。 如果是这样,方法会将停止位置向下舍入到实际对齐方式。

此方法执行无缓冲区读取,因此可能比 IAsyncReader::SyncRead 方法更快。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 strmif.h (包括 Dshow.h)
Library Strmiids.lib

另请参阅

错误和成功代码

IAsyncReader 接口