IAsyncReader::SyncReadAligned 方法 (strmif.h)
[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayer、 IMFMediaEngine 和 音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
方法 SyncReadAligned
执行同步读取。 方法将阻止,直到请求完成。 文件位置和缓冲区地址必须对齐;检查所需的对齐方式的分配器属性。
语法
HRESULT SyncReadAligned(
IMediaSample *pSample
);
参数
pSample
指向调用方提供的媒体示例 的 IMediaSample 接口的指针。
返回值
返回 HRESULT 值。 可能的值包括以下值。
返回代码 | 说明 |
---|---|
|
对齐方式无效。 |
|
检索的字节数少于请求的字节数。 (可能已到达文件的末尾。) |
|
成功。 |
注解
在调用此方法之前,请从引脚的分配器中检索媒体示例。 使用请求的字节偏移量(包括第一个和最后一个)乘以 10,000,000 的时间戳示例。 字节偏移量相对于流的开始时间。
开始和停止位置应与引脚连接时确定的对齐方式匹配。 否则,方法将返回VFW_E_BADALIGN。 如果商定的对齐方式比流的实际对齐方式粗糙,则停止位置可能会超过实际持续时间。 如果是这样,方法会将停止位置向下舍入到实际对齐方式。
此方法执行无缓冲区读取,因此可能比 IAsyncReader::SyncRead 方法更快。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | strmif.h (包括 Dshow.h) |
Library | Strmiids.lib |