IGraphConfig::Reconnect 方法 (strmif.h)
[與此頁面相關的功能 DirectShow 是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft 強烈建議新程式代碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式代碼盡可能重寫為使用新的 API。
方法 Reconnect
會在兩個針腳之間執行動態重新連線。
語法
HRESULT Reconnect(
[in] IPin *pOutputPin,
[in] IPin *pInputPin,
[in] const AM_MEDIA_TYPE *pmtFirstConnection,
[in] IBaseFilter *pUsingFilter,
[in] HANDLE hAbortEvent,
[in] DWORD dwFlags
);
參數
[in] pOutputPin
輸出針腳的 IPin 介面指標。 可以是 NULL,在此情況下 pInputPin 不得為 NULL。
[in] pInputPin
將 IPin 介面指標指向輸入針腳。 可為 NULL,在此情況下 pOutputPin 不得為 NULL。
[in] pmtFirstConnection
AM_MEDIA_TYPE 結構的指標,指定重新連接期間所建立之第一個針腳連接的媒體類型。 如果此參數為 NULL,則第一個連接可以有任何媒體類型。
[in] pUsingFilter
要用於重新連線的選擇性篩選指標。 篩選條件必須已經位於圖表中。 可以是 NULL。
[in] hAbortEvent
事件的控制代碼。 如果呼叫端是其中一個數據處理線程上的篩選呼叫,這個參數應該是當篩選進入停止狀態時將發出訊號的事件句柄。 否則,此參數可以是 NULL。 如需詳細資訊,請參閱<備註>。
[in] dwFlags
從 AM_GRAPH_CONFIG_RECONNECT_FLAGS 列舉的旗標組合,指定如何執行重新連線。
傳回值
如果成功,則傳回S_OK。 否則,傳回錯誤碼,可能是下列其中一個值,或未列出其他值。
傳回碼 | Description |
---|---|
|
無效引數。 例如, (pInputPin 和 pOutputPin 都是 NULL.) |
|
輸入針腳不支援 IPinConnection。 |
|
無法連線篩選。 |
|
篩選的狀態已變更。 無法完成作業。 |
備註
如果您只指定一個針腳,此方法會搜尋另一個針腳。 不過,根據預設,如果搜尋達到透過 IFilterGraph::AddFilter 方法新增至圖形的篩選條件,則搜尋會失敗。 若要覆寫此行為,請呼叫 IGraphConfig::SetFilterFlags ,並在篩選上設定AM_FILTER_FLAGS_REMOVABLE旗標。
重新連線程式牽涉到數個步驟,其中大部分都是在此方法內處理:
- 首先,在呼叫 方法之前,請務必在重新設定的路徑上封鎖數據流。 應用程式應該呼叫 IPinFlowControl::Block 方法來執行此動作。 如果呼叫端是篩選,而不是應用程式,則篩選條件可能可在內部控制數據流。
- 指定的輸出和輸入針腳會定義重新連線的開始和結束點。 輸入針腳必須支援 IPinConnection 介面。 如果您藉由傳遞 NULL 參數) ,讓其中一個針腳保持未指定 (,方法會搜尋篩選圖形來尋找候選釘選以進行重新連線。 (若要尋找輸入釘選,它會從輸出釘選搜尋下游;若要尋找輸出釘選,它會從輸入 pin.) 搜尋上游
- 方法會透過篩選圖形推送任何擱置的數據, (透過 IGraphConfig::P ushThroughData) 的內部呼叫。
- 如果您已指定插入圖形的篩選,方法會將開始輸出針腳連接到篩選的輸入針腳,並將篩選的輸出針腳連接到最終輸入針腳。 如果您未指定篩選條件,方法只會將輸出針腳連接到輸入針腳。 不論是哪一種情況,方法都會插入完成連接所需的任何轉換篩選。 不過, (您可以藉由設定適當的旗標來覆寫此行為;如需詳細資訊,請參閱 dwFlags 參數的描述。)
- 最後,方法會將新的篩選放入執行中狀態。 呼叫端必須重新啟動數據流。 應用程式可以呼叫沒有旗標的 IPinFlowControl::Block 來執行此動作。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | strmif.h (包含 Dshow.h) |
程式庫 | Strmiids.lib |