IMediaControl::StopWhenReady 方法 (control.h)
[與此頁面相關的功能 DirectShow 是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft 強烈建議新程式代碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式代碼盡可能重寫為使用新的 API。
方法 StopWhenReady
會暫停篩選圖表,允許篩選將數據排入佇列,然後停止篩選圖表。
Syntax
HRESULT StopWhenReady();
傳回值
傳回 HRESULT 值。 可能的值如下。
傳回碼 | 描述 |
---|---|
|
成功。 |
|
當方法傳回時,圖表仍會轉換為暫停狀態。 |
備註
如果您想要在圖表停止時搜尋篩選圖形,這個方法會很有用。 只要篩選圖形停止,目前位置的變更就不會以新的畫面重新繪製視訊視窗。 因此,呼叫 IMediaSeeking::SetPositions 並不會更新視訊視窗。 若要在搜尋作業之後更新視窗,請呼叫 StopWhenReady
。 這個方法會將圖形轉換為暫停狀態、等候暫停作業完成,然後將圖形轉換回已停止。 暫停作業會將圖形中的數據排入佇列,讓視訊轉譯器接收並顯示新的畫面。
這個方法是非同步方法。 它會在個別的線程上等候暫停完成。 呼叫線程不會封鎖,這可讓應用程式回應用戶輸入。 當方法傳回時,即使暫停作業完成,圖表的邏輯狀態仍會停止。 如果您此時呼叫 IMediaControl::GetState 方法,它會傳回State_Stopped。
如果應用程式在暫停作業完成之前發出另一個狀態變更 (命令,例如暫停、執行或搜尋) ,則新的命令會取消擱置的停止命令。 暫停作業完成,但圖表不會停止。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | control.h (包含 Dshow.h) |
程式庫 | Strmiids.lib |