IAsyncReader 接口 (strmif.h)

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

接口 IAsyncReader 对筛选器执行异步数据请求。

此接口由执行异步读取操作的输出引脚公开。 接口由下游筛选器上的输入引脚使用。 应用程序不使用此接口。 异步文件源筛选器在其输出引脚上公开此接口。

筛选器开发人员:如果输出引脚以字节流 (MEDIATYPE_Stream) 的形式提供数据并支持拉取模型,则实现此接口。 在连接过程中,检查下游引脚是否查询IAsyncReader接口。 否则,引脚应使连接失败或建立一些其他传输。 (如果引脚派生自 CBasePin,请在 CBasePin::CheckConnect 方法中执行此检查。)

有关使用此接口的详细信息,请参阅以下主题:

继承

IAsyncReader 接口继承自 IUnknown 接口。 IAsyncReader 还具有以下类型的成员:

方法

IAsyncReader 接口具有这些方法。

 
IAsyncReader::BeginFlush

BeginFlush 方法开始刷新操作。 (IAsyncReader.BeginFlush)
IAsyncReader::EndFlush

EndFlush 方法结束刷新操作。 (IAsyncReader.EndFlush)
IAsyncReader::Length

Length 方法检索流的总长度。
IAsyncReader::Request

Request 方法对异步数据请求进行排队。
IAsyncReader::RequestAllocator

RequestAllocator 方法在引脚连接期间请求分配器。
IAsyncReader::SyncRead

SyncRead 方法执行同步读取。 方法将阻止,直到请求完成。 文件位置和缓冲区地址不必对齐。 如果请求不一致,方法将执行缓冲读取操作。
IAsyncReader::SyncReadAligned

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

WaitForNext 方法等待下一个挂起的读取请求完成。

要求

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