IAsyncReader::BeginFlush 方法 (strmif.h)
[與此頁面 相關的功能 DirectShow 是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft 強烈建議新程式代碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式代碼,以使用新的 API。]
方法 BeginFlush
會開始排清作業。
Syntax
HRESULT BeginFlush();
傳回值
如果成功,則傳回S_OK,否則傳回 S_FALSE。
備註
此方法會中斷所有擱置的讀取要求。 當針腳排清時, IAsyncReader::Request 方法會失敗, 而 IAsyncReader::WaitForNext 方法會立即傳回,可能是傳回碼VFW_E_TIMEOUT。
每當下游篩選排清篩選圖形時,下游輸入針腳應該呼叫這個方法。 呼叫此方法之後,請呼叫 WaitForNext 方法,直到它在 ppSample 參數中傳回 NULL 為止,以清除擱置樣本的佇列。 忽略錯誤碼,並釋放每個範例。 然後呼叫 IAsyncReader::EndFlush 方法來結束排清作業。
如需詳細資訊,請參閱 Flushing。
範例
下列範例示範下游輸入針腳應該如何呼叫此方法:
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) |
程式庫 | Strmiids.lib |