IAsyncReader::BeginFlush 方法 (strmif.h)
[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayer、 IMFMediaEngine 和 音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
方法 BeginFlush
开始刷新操作。
语法
HRESULT BeginFlush();
返回值
如果成功,则返回S_OK,否则返回S_FALSE。
注解
此方法中断所有挂起的读取请求。 刷新引脚时, IAsyncReader::Request 方法失败, IAsyncReader::WaitForNext 方法会立即返回,可能返回代码VFW_E_TIMEOUT。
每当下游筛选器刷新筛选器图时,下游输入引脚都应调用此方法。 调用此方法后,调用 WaitForNext 方法,直到它在 ppSample 参数中返回 NULL,以清除挂起样本的队列。 忽略错误代码,并释放每个示例。 然后调用 IAsyncReader::EndFlush 方法来结束刷新操作。
有关详细信息,请参阅 刷新。
示例
以下示例演示下游输入引脚应如何调用此方法:
C++ |
---|
m_pReader->BeginFlush(); while (1) { IMediaSample *pSample; DWORD_PTR dwUnused; m_pReader->WaitForNext(0, &pSample, &dwUnused); if(pSample) { pSample->Release(); } else { // No more samples. break; } } m_pReader->EndFlush(); |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | strmif.h (包括 Dshow.h) |
Library | Strmiids.lib |