從 Windows 10 開始的預設音訊端點選取專案
Windows 10 音訊子系統會針對預設音訊端點選取使用具有增強啟發學習法的演算法。 本主題描述這些啟發學習法,以及 Windows 10 音訊子系統如何使用它們來選取預設音訊端點。 為了讓您最瞭解新的 Windows 10 選取機制,本主題也會說明如何在 Windows 7 中選取預設音訊端點。 本主題的目標物件是 OEM 和 IHD。
此資訊適用於 Windows 10 作業系統。
本主題結尾會列出此處討論的參考和資源。
簡介
大部分的電腦音訊裝置都包含多個邏輯獨立音訊功能。 在 Windows 7 和 Windows 10 中,每項功能都會公開為個別的音訊端點。 端點會列在 控制台 Sound 應用程式中,如下列來自 Windows 7 的範例對話方塊所示。
在 Windows 10 中提供的新音效設定頁面中。
一次只能將一個音訊端點設定為特定控制台或通訊角色的預設值。 不過,從 Windows 10 開始,您可以使用 [應用程式磁碟區和裝置喜好設定] 頁面,將這些角色的目標設定為不同的端點。
當未指定任何使用者喜好設定時,Windows 7 和 Windows 10 音訊子系統會使用類似的演算法來判斷預設音訊端點。 不過,Windows 10 演算法與 Windows 7 不同,因為它處理預設的用戶選擇,以及處理個別應用程式喜好設定的方式。
本主題描述如何在 Windows 10 中選取預設音訊端點。 為了進一步瞭解 Windows 10 的新功能,也會說明 Windows 7 中的預設音訊端點選取專案。
默認音訊端點選取的基本演算法
Windows 7 和 Windows 10 音訊子系統會使用類似的演算法來判斷預設音訊端點。 演算法的運作方式如下:
- 循環查看所有 ACTIVE 端點,以尋找此應用程式使用者慣用的預設值的端點集(Windows 10 的新功能)
- 如果已識別端點,則會傳回端點,且程式會完成。
- 如果未識別任何端點,請迴圈查看所有 ACTIVE 端點,以尋找使用者為系統慣用的預設值的端點集(針對 Windows 10 修改的選項)。
- 如果已識別端點,則會傳回端點,且程式會完成。
- 如果未識別任何端點,請迴圈查看所有 ACTIVE 端點,以尋找具有要求角色最高「排名」屬性的端點,而且從未設定為預設 PKEY_AudioDevice_NeverSetAsDefaultEndpoint 屬性集。 (針對 Windows 10 修改的加權值)。
- 如果已識別端點,則會傳回端點,且程式會完成。
- 如果未識別任何端點,則要求會失敗,指出E_NOTFOUND。
有四個端點狀態:ACTIVE、UNPLUGGED、DISABLED 和 NOT PRESENT,這些狀態定義於DEVICE_STATE_XXX常數中。 音訊子系統在判斷預設音訊端點時,只會考慮 ACTIVE 端點(處於目前和啟用狀態)。 任何導致端點狀態從 或 變更為 ACTIVE 狀態的事件,都可能會影響目前的預設音訊端點。 這類事件包括插入音訊裝置、取消插入裝置,以及安裝新的音訊裝置。 為了回應這類作業,Windows 音訊子系統會執行預設音訊端點啟發學習演算法,以判斷新的預設音訊端點。
Windows 7 中的 Endpoint Timestamp 屬性
端點時間戳屬性是包含系統時間的屬性索引鍵。 在 Windows 7 中,端點的 timestamp 屬性會在透過 控制台 Sound 應用程式設定為預設音訊端點時建立或更新。
timestamp 屬性會與每個角色相關聯,而時間戳屬性則由預設選取演算法使用,以識別該角色的使用者已將哪些端點設定為慣用的預設值。 此演算法會將具有最新時間戳屬性的端點識別為預設端點。
Windows 10 中的 Level 屬性
在 Windows 7 中用於使用者預設喜好設定的 timestamp 屬性不允許在初始預設選取之後自動選取新連結的裝置。 例如,如果使用者在過去和之後的任何時間將內部喇叭設定為預設端點,則系統永遠不會移至USB耳機,而不需要手動選取。
從 Windows 10 開始,用戶預設選取專案會建置為過去喜好設定的樹狀結構,其會考慮使用者完成預設選取時可用的端點。 原因是當用戶選取預設端點時,他們會與選取時使用的其他端點相對,來傳達該端點的喜好設定。 使用者不會永遠與所選裝置通訊絕對喜好設定,而且在所有情況下。
已從 Windows 10 中移除 Timestamp 屬性的使用和建立,並由 Level 屬性取代。 level 屬性是用來建置類似樹狀的使用者喜好設定結構。 和 timestamp 屬性一樣,每個角色都有相關聯的層級屬性。 每當使用者透過聲音控制面板、音效設定頁面或系統匣中的音訊控件選取預設端點時,就會建立或更新層級屬性。
預設指派演算法的運作方式如下:
選取端點做為預設值時,該端點會藉由指派最高的可用層級,移至類似樹狀結構的頂端。 樹狀結構中的下一個層級會包含一或多個端點,這些端點過去已選取為預設值,或在此選取期間為作用中,但從未由用戶選取。 每個後續選取項目都會將所需的端點移至清單頂端,將先前的選取專案向下移動,並將作用中分組,但尚未選取,端點會一起建立系結條件。 如果系統中的所有端點都設定為預設值,產生的結構會變成具有每個層級一個端點的簡單排序列表。
預設判斷演算法的運作方式如下:
首先,沒有層級值的作用中端點會進行排名比較,而已選取最高排名的端點則為預設值。 如此一來,最近新增的端點會獲得第一個成為預設值的機會,因為它們是系統中最新的端點,並在用戶選取前一個預設值之後連線。
接下來,如果所有作用中的端點都包含層級,則會選擇具有最高層級且沒有系結的端點做為預設值。 擁有最高層級表示在過去某個時間點,使用者已將此端點設定為預設值,而具有較低層級值的其他端點則處於作用中狀態。
最後,如果所有端點都包含層級值,且具有最高層級值的端點全部系結,則會使用端點排名來中斷系結。 這表示這些端點在預設選取時處於作用中狀態,但本身並未選取。 我們沒有指示這些端點之間的使用者喜好設定,因此會使用自動化排名系統。
值得注意的是,有了這個新的演算法,就會增加「新」端點的加權,以成為預設值。 這表示導致音訊端點出現在系統的新驅動程式行為有可能觸發預設變更。
驅動程式行為和事件範例,導致音訊端點上的使用者設定遺失,而且會讓音訊端點對系統顯示「新增」,而可能會觸發預設裝置中的變更,包括:
- 安裝不同的驅動程式。 例如,在 HDAudio 類別驅動程式與硬體相符的第三方驅動程式之間切換。 這是預期和設計,因為用戶設定和可用的端點不會假設在兩個或更多不相關的驅動程式安裝之間相同。
- 卸載並重新安裝驅動程式。 卸載音頻驅動程式會導致 AudioEndpointBuilder 刪除與驅動程式相關聯的用戶設定。 安裝新的驅動程式會導致 AudioEndpointBuilder 建立新的音訊端點。 這是預期的行為和設計,但是當自動安裝程式造成使用者設定意外遺失時,應該避免這種行為。
- 音訊端點篩選參考字串或釘選標識碼的任何變更。 音訊端點是由建立 KS 介面時傳遞至 PnP 的參考字串,以及外部連接器的針腳標識碼來識別。 變更這些值會導致建立新的音訊端點。 這個新的音訊端點不會包含與先前參考字串和連接器釘選標識符相關聯的用戶設定。 參考字串和連接器針腳標識碼在驅動程式安裝期間不得變更,包括跨驅動程式更新。
- HDMI 或顯示變更終端機類型或接收標識碼的音訊裝置。 當使用者將不同的顯示器附加至系統時,終端機類型和接收標識碼應該會變更,不同的顯示器是新的端點,且具有與其相關聯的新用戶設定。 不過,當附加顯示器沒有對應的變更時,變更這些值會被視為用戶設定遺失。 連接顯示器的接收標識碼和終端機類型必須保持常數。
Windows 10 預設音訊端點啟發學習法
自動端點選取的 Windows 10 預設音訊端點啟發學習法與 Windows 7 啟發學習法相同,對因數加權進行一些次要修改,以提供更佳的用戶體驗。
默認選取啟發學習法會從收集音訊端點的相關信息開始;因素。 然後每個因素都會加權,並加總所有因素所產生的加權值。 產生的總和稱為端點排名。 系統會針對每個端點的每個角色計算排名值(主控台和通訊)。
接著,系統會選擇排名最高的端點作為要求角色的預設值。
Windows 10 啟發學習法因素
Windows 10 音訊子系統會考慮下列端點特性或 因素,以選取預設音訊端點:
Windows 10 會為每個支援的端點因數定義一組列舉值,並將其儲存在登錄中。 這些因素及其對應的列舉值集的詳細描述如下。
Jack 偵測功能
具有這項功能的端點表示,當連線到端點的音訊周邊裝置插入或取消插電時,音訊驅動程式可以通知音訊子系統。 支援千斤頂偵測功能的音訊端點稱為動態端點,且未提供此支援的音訊端點稱為靜態端點。 若要支援插孔偵測功能,音訊設備驅動器必須支援 KSPROPERTY_JACK_DESCRIPTION2 屬性。 如需此屬性的詳細資訊,請參閱 KSPROPERTY_JACK_DESCRIPTION2。
Jack 偵測功能列舉值 |
---|
支援 |
NotSupported |
Windows 10 預設音訊裝置啟發學習法會將所有 USB 音訊端點和 藍牙 音訊端點視為支援插孔偵測。
尺寸
音訊端點的尺寸表示使用者與其互動之音訊端點的實體屬性,例如耳機、喇叭或 S/PDIF。 為了判斷端點的尺寸,音訊子系統會使用內建固定邏輯,將音訊驅動程序公開的核心串流 (KS) 針腳類別 (KSNodeType) 對應至特定尺寸。 如需詳細資訊,請參閱 EndpointFormFactor。
端點規格列舉值 |
---|
RemoteNetworkDevice |
演講者 |
LineLevel |
耳機 |
麥克風 |
Headset |
手機 |
UnknownDigitalPassthrough |
SPDIF |
DigitalAudioDisplayDevice |
UnknownFormFactor |
KSNodeType
音訊驅動程式會針對端點上的 KSNodeType 選取 KSNodeType,因為驅動程式已深入瞭解可能連線到音訊插孔的音訊裝置。 因此,KsNodeType 會顯示端點上比其尺寸更明確的知識。
KSNodeType 列舉值 |
---|
KSNODETYPE_SPEAKER |
KSNODETYPE_MICROPHONE_ARRAY |
KSNODETYPE_HEADPHONES |
如需 KsNodeType 的詳細資訊,請參閱 Pin 類別屬性。
總線類型
這個因素代表公開音訊端點的音訊裝置列舉所在的總線類型。
總線類型列舉值 |
---|
BTHENUM |
BTHHFENUM |
USB |
HDAUDIO |
PCI |
Unknown |
當所有其他端點特性都相同時,音訊子系統會優先於特定總線類型上的端點,而其他總線類型則優先於其他總線類型。 例如,系統會提供 藍牙 耳機優先於機上 HD Audio 耳機,為使用者提供更好的通訊體驗;也就是說,當使用者將此電腦引進 藍牙 耳機裝置時,系統會將其設為預設裝置。
一般位置
一般位置表示音訊端點所連接的插孔或裝置的實際總位置。
一般位置列舉值 |
---|
PrimaryBox (在主要系統底座上,用戶可存取) |
內部 (在主機板上,沒有打開箱子就無法存取) |
分開(例如移動盒) |
其他 |
幾何位置
幾何位置表示音訊端點所連接的插孔或裝置的幾何位置。
幾何位置列舉值 |
---|
eGeoLocRear |
eGeoLocFront |
eGeoLocLeft |
eGeoLocRight |
eGeoLocTop |
eGeoLocBottom |
eGeoLocRearOPanel |
eGeoLocRiser |
SubtypeSpecific
子類型特定屬性允許未來延伸啟發學習法值,此值相依於端點的針腳類別屬性。 它允許支援/NotSupported 功能。
SubtypeSpecific 功能列舉值 |
---|
支援 |
NotSupported |
目前唯一的子類型特定屬性與麥克風數位數組幾何有關。 在麥克風陣列幾何的內容中,「支援」表示正面/後方幾何。 “NotSupported” 表示一些其他幾何。 如果有多個麥克風陣列存在,可能會採用前/后幾何的喜好設定。
Windows 10 啟發學習法詳細數據
Windows 10 預設音訊端點啟發學習法加權每個端點因素。 因素優先順序越高,其權數就越大。 本主題使用 WeightFactor_Xxx 來識別因素的優先順序。
此外,Windows 10 啟發學習法會將排名值 (本主題中的 nRankXxx ) 指派給因數類別內的每個列舉值。 此排名值會在相同因素下的所有列舉值之間建立相對重要性。
這些 WeightFactor_Xxx 和 nRankXxx 值會由 Windows 在作業系統安裝期間儲存在登錄中。 啟發學習法排名計算的參數集取決於端點的特性。 下表顯示一組範例參數。
端點因數的權數 | 端點因數的排名值 |
---|---|
WeightFactor_JackDet | nRankJackDet |
WeightFactor_SubType | nRankSubType |
WeightFactor_FormFactor | nRankFormFactor |
WeightFactor_BusType | nRankBusType |
WeightFactor_GenLoc | nRankGenLoc |
WeightFactor_GeoLoc | nRankGeoLoc |
WeightFactor_SubtypeSpecific | nRankSubtypeSpecific |
音訊子系統會計算端點所有因素的加權排名,如下所示:
WeightedRankValue =
WeightFactor_JackDet * nRankJackDet +
WeightFactor_SubType * nRankSubType +
WeightFactor_FormFactor * nRankFormFactor +
WeightFactor_BusType * nRankBusType +
WeightFactor_GenLoc * nRankGenLoc +
WeightFactor_GeoLoc * nRankGeoLoc |
WeightFactor_SubtypeSpecific * nRankSubtypeSpecific。
音訊子系統會計算所有使用中端點的加權排名值,並選取排名最高的端點做為預設音訊端點。
Windows 10 預設音訊端點選取啟發學習機制也支援例外狀況功能。 這項功能可讓系統或 OEM 讓音訊子系統指定一個端點,以符合具有非常高或非常低加權等級值的特定特性集。 這類指定可讓系統的啟發學習法在處理非預期的案例時更具彈性。
控制台裝置角色和通訊裝置角色的啟發學習法是分開的,但機制完全相同,根據角色的因素順序不同。
Windows 10 收件匣啟發學習法 設定
Windows 10 隨附於本主題中啟發學習法詳細數據的設定。 預設主控台音訊端點和預設通訊音訊端點有不同的設定。 本節描述這兩種端點類型的設定。
默認主控台音訊端點的收件匣啟發學習法 設定
本節說明主控台音訊端點之每個因素的預設啟發學習法設定。 因素會以優先順序列出;也就是說,當音訊子系統決定預設控制台端點時,Windows 10 會提供下列清單中第一個因素的最高優先順序。
Jack 偵測功能
具有插孔偵測功能的端點會提供最新的資訊給系統,瞭解音訊周邊裝置是否實際連接到系統,以及插入或取消插入時。 這項資訊有助於建立更好的用戶體驗,因此 Windows 10 會將此因素設定為最高優先順序因素。 不論其他因素的比較為何,具有千斤頂偵測功能的端點優先順序高於沒有這項功能的端點。
板型規格
Windows 10 使用與 Windows 7 不同的尺寸優先順序,這些值已根據使用者意見反應和研究進行調整。
Windows 10 會以下列優先順序設定轉譯控制台端點的規格優先順序:
- 耳機和耳機
- 演講者
- LineLevel
- DigitalAudioDisplayDevice
- S/PDIF
- 任何其他專案(以相同的最低優先順序處理;也就是說,with_nRankFormFactor_等於零)
Windows 10 會以下列優先順序設定擷取主控台端點的規格優先順序:
- Headset
- 麥克風
- LineLevel
- 任何其他專案(以相同的最低優先順序處理;也就是說,nRankFormFactor 等於零)
例如,假設有三個音訊控制台轉譯端點的系統:
- HD 音訊 靜態 耳機端點(沒有插孔偵測功能的耳機)。
- 靜態 S/PDIF Out 端點。
- 動態喇叭端點(支援插孔偵測的喇叭)。
音訊子系統使用 Windows 10 系統啟發學習法,並選擇動態喇叭端點作為預設控制台轉譯音訊端點,即使喇叭的尺寸優先於耳機的尺寸下方。 選擇喇叭端點是因為其能夠進行插孔偵測,其優先順序高於尺寸,而耳機則沒有此功能。
如果上述範例中引進了動態USB耳機端點,Windows 7 音訊子系統會選擇此端點作為預設控制台轉譯端點。 之所以選擇,是因為兩部裝置都支援插孔偵測時,耳機尺寸的優先順序高於喇叭尺寸。
KSNodeType
如先前所述,KSNodeType 會提供比連接到端點之音訊裝置的規格所指示更詳細的資訊。 Windows 10 會定義三個與 KSNodeType 相關的麥克風,以進一步使用麥克風尺寸來設定端點的優先順序,但不同的 KSNodeType。 它們會依優先順序排序,如下所示:
- KSNODETYPE_PROCESSING_MICROPHONE_ARRAY
- KSNODETYPE_MICROPHONE_ARRAY
- KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE
- 任何其他專案(以相同的最低優先順序處理;也就是說,nRankSubType 等於零)
例如,假設有兩個音訊擷取端點的系統:
- 具有KSNODETYPE_MICROPHONE_ARRAY的內建靜態麥克風數位端點。
- 具有KSNODETYPE_MICROPHONE的靜態麥克風端點。
當音訊子系統使用系統啟發學習法來選擇預設控制台擷取音訊端點時,它會選取麥克風數位端點。 已選取麥克風陣列,因為雖然這兩個端點具有相同的插孔偵測功能和尺寸,但麥克風陣列的 KsNodeType 的優先順序高於麥克風的優先順序。 也就是說,KSNODETYPE_MICROPHONE_ARRAY的優先順序高於KSNODETYPE_MICROPHONE,但未列出並屬於「任何其他項目」類別。
如需 KsNodeType 的詳細資訊,請參閱 Pin 類別屬性。
總線類型
Windows 10 會以下列優先順序排列端點總線類型的列舉值,從最高到最低優先順序:
- USB
- HDAudio 和 UnknownBusType (通常是 SOC 系統)
- PCI
- BTHENUM
- BTHHFENUM
- 其他專案(以相同的最低優先順序處理;也就是說,nRankBusType 等於零)
一般位置
Windows 10 會以下列優先順序排列一般位置的列舉值,從最高到最低優先順序:
- PrimaryBox 和 Internal
- 其他專案(以相同的最低優先順序處理;也就是說, nRankGenLoc 等於零)
音訊驅動程式會透過 KSPROPERTY_JACK_DESCRIPTION 屬性報告其端點的一般位置資訊。 如需詳細資訊,請參閱 Jack Description 屬性。
幾何位置
Windows 10 會以下列優先順序排列幾何位置的列舉值,從最高到最低優先順序:
- Front 和 InsideMobileLid
- Bottom、Left、OutsideMobileLid、Rear、Right 和 Top
- RearPanel
- 其他專案(以相同的最低優先順序處理;也就是說,nRankGeoLoc 等於零)
音訊驅動程式會透過 KSPROPERTY_JACK_DESCRIPTION 屬性報告其端點的幾何位置資訊。 如需詳細資訊,請參閱 Jack Description 屬性。
例外狀況
除了上述啟發學習因素之外,Windows 10 還有 3 個預設控制台裝置啟發學習法的例外狀況。 Windows 7 只有 1 個例外狀況。
Windows 7 和 10 中的第一個例外狀況可防止選擇明顯的通訊導向端點,例如手機和喇叭,成為預設控制台端點。 具體而言,音訊子系統會將具有下列其中一個 KSNodeType 值的端點的 WeightedRankValue 結果降級:
- KSNODETYPE_SPEAKER_AND_HEADSET
- KSNODETYPE_SPEAKERS_STATIC_JACK
- KSNODETYPE_HANDSET
- KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION
- KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE
- KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE
- KSNODETYPE_PHONE_LINE
- KSNODETYPE_TELEPHONE
- KSNODETYPE_DOWN_LINE_PHONE
- 行動案例中存在的行動數據音訊特定端點
第二個例外狀況只存在於 Windows 10 上,也會防止將明顯的通訊導向端點選擇為預設控制台端點。 不同於第一個例外狀況,此例外狀況也會考慮總線類型。 原因是許多熱門的USB耳機使用下列 KSNodeTypes,即使裝置不是特定的通訊。 Windows 7 排名演算法已針對所有總線類型的預設控制台端點,將這些 KSNodeType 降級。 針對 Windows 10,這些 KSNodeType 只會針對非 usb 總線類型降級。
- KSNODETYPE_PERSONAL_MICROPHONE
- KSNODETYPE_COMMUNICATION_SPEAKER
- KSNODETYPE_HEADSET
針對第三個例外狀況,明確引進「個人」端點的喜好設定,例如耳機和頭戴式裝置,這些端點會實際連接到具有電線的系統。 一些範例是有線 USB 耳機和有線 3.5mm 耳機。 不同於前 2 個例外狀況,此例外狀況會將這些端點升級為預設控制台端點的慣用端點。 此例外狀況是 Windows 10 的新功能,而且是為了改善用戶隱私權,偏好只有使用者可以透過其他人可聽到的喇叭端點來聽到的端點。
默認通訊音訊端點的收件匣啟發學習 設定
本節說明通訊音訊端點之每個因素的預設啟發學習設定。 因素會以優先順序列出;也就是說,Windows 10 會在計算預設通訊端點時,將優先順序設定為下列清單中的第一個因素。 主控台預設端點和通訊預設端點啟發學習法的唯一差異在於尺寸設定和例外狀況規則。
Jack 偵測功能
默認通訊音頻端點和預設控制台音訊端點的千斤頂偵測功能啟發學習設定都相同。
板型規格
系統會為轉譯通訊預設裝置建立不同的優先順序清單,並擷取通訊默認裝置。
通訊預設擷取端點的規格優先順序(從最高優先順序到最低)如下:
- Headset
- 手機
- 麥克風
- LineLevel
通訊預設轉譯端點的規格優先順序(從最高優先順序到最低)如下:
- Headset
- 手機
- 耳機
- 演講者
- LineLevel
- DigitalAudioDisplayDevice (HDMI 或 DisplayPort)
- S/PDIF
- 任何其他專案(以相同的最低優先順序處理;也就是說,nRankFormFactor 等於零)
KSNodeType
KsNodeType 啟發學習法設定在預設通訊音訊端點和預設控制台音訊端點上都相同。
總線類型
默認通訊音訊端點和預設控制台音訊端點的總線類型啟發學習法設定都相同。
一般位置
Windows 10 會以下列優先順序排列一般位置的列舉值,從最高到最低優先順序:
- 個別
- PrimaryBox
- 內部
- 其他專案(以相同的最低優先順序處理;也就是說, nRankGenLoc 等於零)
音訊驅動程式會透過 KSPROPERTY_JACK_DESCRIPTION 屬性報告其端點的一般位置資訊。 如需詳細資訊,請參閱 Jack Description 屬性。
幾何位置
Windows 10 會以下列優先順序排列幾何位置的列舉值,從最高到最低優先順序:
- Front 和 InsideMobileLid
- 其他專案(以相同的最低優先順序處理;也就是說,nRankGeoLoc 等於零)
音訊驅動程式會透過 KSPROPERTY_JACK_DESCRIPTION 屬性報告其端點的幾何位置資訊。 如需詳細資訊,請參閱 Jack Description 屬性。
例外狀況
除了上述啟發學習因素之外,Windows 10 也有針對預設通訊裝置啟發學習法實作的三個例外狀況,而 Windows 7 只有一個。
第一個例外狀況偏好明顯的通訊導向端點,例如手機和喇叭,以選擇作為預設通訊端點。 具體來說,音訊子系統會 使用符合下列任何值的 KSNodeType 來升級端點的 WeightedRankValue 結果:
- KSNODETYPE_PERSONAL_MICROPHONE
- KSNODETYPE_HEADSET
- KSNODETYPE_PHONE_LINE
- KSNODETYPE_DOWN_LINE_PHONE
- KSNODETYPE_COMMUNICATION_SPEAKER
- KSNODETYPE_HANDSET
- KSNODETYPE_TELEPHONE
- KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION
- KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE
- KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE
第二個例外狀況可避免那些明顯適用於通訊使用之控制台導向端點的端點:
- KSNODETYPE_SPEAKERS_STATIC_JACK
- 僅適用於行動案例的特殊音訊端點,無法用於通訊音訊
撰寫本文時,有第三個例外狀況偏好使用行動數據音訊端點。 此例外狀況僅適用於具有行動數據功能的行動案例,且超出本文件的範圍。 由於這種類型的端點只會存在於行動系統上,因此可以安全地忽略此例外狀況。