共用方式為


取得串流路由的裝置端點

在 Windows 7 中,使用媒體基礎、DirectSound 和 Wave API 等核心音訊 API 的高階平臺 API,藉由處理從現有裝置切換至新的預設音頻端點的串流路由功能,來實作串流路由功能。 使用這些 API 的媒體應用程式(例如,啟動 IDirectSoundIBaseFilter 物件的應用程式在 IMMDevice 物件上),可使用音頻流路由行為,且不需要對源進行任何修改。

高階 API 會針對透過 IMMDeviceEnumerator::GetDefaultAudioEndpoint取得的裝置端點實作數據流路由。 如果應用程式串流至預設裝置,串流路由功能會如定義般運作。 如果串流是由任何其他機制擷取,即使它與預設裝置相同,也不會切換至新裝置。

直接使用核心音訊 API 的媒體應用程式(WASAPI 用戶端)可以提供任何轉譯或擷取裝置的自定義串流路由實作。 WASAPI 用戶端可以透過將其限制在設為預設裝置的設備上開啟的資料流,來複製高階 API 提供的實作。 若要取得預設裝置端點的參考,客戶端必須呼叫 IMMDeviceEnumerator::GetDefaultAudioEndpoint。 在此呼叫中,客戶端必須透過指定 dataFlow 參數來指出它是否需要呈現預設裝置的指標或擷取預設裝置的指標。 用戶端也必須為 ERole 屬性中的端點指定適當的角色(eConsoleeCommunications)。 請勿使用 eMultimedia

如果應用程式串流至任何其他裝置,應用程式可以藉由指定端點標識符字串來取得裝置(藉由呼叫 IMMDeviceEnumerator::GetDevice)。

識別裝置之後,WASAPI 用戶端可以藉由處理裝置傳送的裝置和音訊會話通知,提供串流路由的實作。 如需這些通知的詳細資訊,請參閱 串流路由的相關通知

關於 MMDevice API

關於 WASAPI

串流路由