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