[與此頁面 相關的功能 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 |