IMediaControl::StopWhenReady 方法 (control.h)

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

方法 StopWhenReady 會暫停篩選圖表,允許篩選將數據排入佇列,然後停止篩選圖表。

Syntax

HRESULT StopWhenReady();

傳回值

傳回 HRESULT 值。 可能的值如下。

傳回碼 描述
S_OK
成功。
S_FALSE
當方法傳回時,圖表仍會轉換為暫停狀態。

備註

如果您想要在圖表停止時搜尋篩選圖形,這個方法會很有用。 只要篩選圖形停止,目前位置的變更就不會以新的畫面重新繪製視訊視窗。 因此,呼叫 IMediaSeeking::SetPositions 並不會更新視訊視窗。 若要在搜尋作業之後更新視窗,請呼叫 StopWhenReady。 這個方法會將圖形轉換為暫停狀態、等候暫停作業完成,然後將圖形轉換回已停止。 暫停作業會將圖形中的數據排入佇列,讓視訊轉譯器接收並顯示新的畫面。

這個方法是非同步方法。 它會在個別的線程上等候暫停完成。 呼叫線程不會封鎖,這可讓應用程式回應用戶輸入。 當方法傳回時,即使暫停作業完成,圖表的邏輯狀態仍會停止。 如果您此時呼叫 IMediaControl::GetState 方法,它會傳回State_Stopped。

如果應用程式在暫停作業完成之前發出另一個狀態變更 (命令,例如暫停、執行或搜尋) ,則新的命令會取消擱置的停止命令。 暫停作業完成,但圖表不會停止。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 control.h (包含 Dshow.h)
程式庫 Strmiids.lib

另請參閱

錯誤和成功碼

IMediaControl 介面