IMediaControl::Run 方法 (control.h)
[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]
方法 Run
會執行篩選圖形中的所有篩選。 當圖表執行時,資料會透過圖形移動並轉譯。
Syntax
HRESULT Run();
傳回值
傳回 HRESULT 值。 可能的值如下。
傳回碼 | Description |
---|---|
|
圖形正在準備執行,但某些篩選尚未完成轉換至執行中狀態。 |
|
圖形中的所有篩選都已完成轉換為執行中狀態。 |
備註
如果篩選圖表已停止,這個方法會在執行之前暫停圖形。 如果圖表已在執行中,此方法會傳回S_OK,但沒有任何作用。
圖形會執行,直到應用程式呼叫 IMediaControl::P ause 或 IMediaControl::Stop 方法為止。 當播放到達資料流程結尾時,圖表會繼續執行,但篩選準則不會再串流任何資料。 此時,應用程式可以暫停或停止圖形。 如需串流結束事件的相關資訊,請參閱 IMediaControl::P ause 和 EC_COMPLETE。
這個方法不會搜尋資料流程的開頭。 因此,如果您執行圖形、暫停圖形,然後再次執行,則播放會從暫停的位置繼續播放。 如果您在圖形到達資料流程結尾之後執行圖形,則不會轉譯任何內容。 若要搜尋圖表,請使用 IMediaSeeking 介面。
如果方法傳回 S_FALSE,則表示方法會在所有篩選切換為執行中狀態之前傳回。 篩選準則會在方法傳回之後完成轉換。 您可以選擇性地等候轉換完成,方法是使用逾時值呼叫 IMediaControl::GetState 方法。 但是,這並非必要措施。
如果 Run 方法傳回錯誤碼,表示一或多個篩選無法執行。 不過,某些篩選準則可能處於執行中狀態。 在多資料流程圖中,整個資料流程可能會成功播放。 應用程式通常會卸載圖形,並在此案例中回報錯誤。
規格需求
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | control.h (包含 Dshow.h) |
程式庫 | Strmiids.lib |