IMediaControl::Run 方法 (control.h)

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

方法 Run 會執行篩選圖形中的所有篩選。 當圖表執行時,資料會透過圖形移動並轉譯。

Syntax

HRESULT Run();

傳回值

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

傳回碼 Description
S_FALSE
圖形正在準備執行,但某些篩選尚未完成轉換至執行中狀態。
S_OK
圖形中的所有篩選都已完成轉換為執行中狀態。

備註

如果篩選圖表已停止,這個方法會在執行之前暫停圖形。 如果圖表已在執行中,此方法會傳回S_OK,但沒有任何作用。

圖形會執行,直到應用程式呼叫 IMediaControl::P auseIMediaControl::Stop 方法為止。 當播放到達資料流程結尾時,圖表會繼續執行,但篩選準則不會再串流任何資料。 此時,應用程式可以暫停或停止圖形。 如需串流結束事件的相關資訊,請參閱 IMediaControl::P auseEC_COMPLETE

這個方法不會搜尋資料流程的開頭。 因此,如果您執行圖形、暫停圖形,然後再次執行,則播放會從暫停的位置繼續播放。 如果您在圖形到達資料流程結尾之後執行圖形,則不會轉譯任何內容。 若要搜尋圖表,請使用 IMediaSeeking 介面。

如果方法傳回 S_FALSE,則表示方法會在所有篩選切換為執行中狀態之前傳回。 篩選準則會在方法傳回之後完成轉換。 您可以選擇性地等候轉換完成,方法是使用逾時值呼叫 IMediaControl::GetState 方法。 但是,這並非必要措施。

如果 Run 方法傳回錯誤碼,表示一或多個篩選無法執行。 不過,某些篩選準則可能處於執行中狀態。 在多資料流程圖中,整個資料流程可能會成功播放。 應用程式通常會卸載圖形,並在此案例中回報錯誤。

規格需求

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

另請參閱

錯誤和成功碼

IMediaControl 介面