IAsyncReader::BeginFlush 方法 (strmif.h)

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 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

另请参阅

错误和成功代码

IAsyncReader 接口