IAsyncReader::BeginFlush 方法 (strmif.h)

[與此頁面 相關的功能 DirectShow 是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft 強烈建議新程式代碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 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

另請參閱

錯誤和成功碼

IAsyncReader 介面