[与此页面关联的功能 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 |