Выбор конечной точки аудио по умолчанию, начиная с Windows 10

Подсистема звука Windows 10 использует алгоритм с расширенными эвристиками для выбора конечной точки аудио по умолчанию. В этом разделе описываются эти эвристики и способы использования подсистемы звука Windows 10 для выбора конечной точки звука по умолчанию. Чтобы лучше понять новый механизм выбора Windows 10, в этом разделе также объясняется, как выбор конечной точки аудио по умолчанию происходит в Windows 7. Целевая аудитория этого раздела — это изготовители оборудования и IHV.

Эта информация относится к операционной системе Windows 10.

Ссылки и ресурсы, рассмотренные здесь, перечислены в конце этого раздела.

Введение

Большинство звуковых устройств пк содержат несколько логически независимых звуковых функций. В Windows 7 и Windows 10 каждая функция предоставляется как отдельная конечная точка звука. Конечные точки перечислены в приложении "Звук панели управления", как показано в следующем примере диалогового окна из Windows 7.

Снимок экрана: диалоговое окно

И на новой странице параметров звука, доступной в Windows 10.

Снимок экрана: страница параметров звука в Windows 10.

Для определенной роли консоли или связи можно задать только одну конечную точку звука за раз. Тем не менее, начиная с Windows 10, можно выбрать другую конечную точку для этих ролей для разных приложений с помощью страницы настроек приложения и устройства.

Снимок экрана страницы настроек громкости приложений и устройства в Windows 10.

Подсистемы аудиосистем Windows 7 и Windows 10 используют аналогичные алгоритмы, чтобы определить конечную точку звука по умолчанию, если не задано предпочтения пользователя. Однако алгоритм Windows 10 отличается от Windows 7 так, как он обрабатывает выбор пользователей по умолчанию и обрабатывает предпочтения каждого приложения.

В этом разделе описывается, как выбрана конечная точка звука по умолчанию в Windows 10. Чтобы лучше понять, что нового для Windows 10, также объясняется выбор конечной точки аудио по умолчанию в Windows 7.

Базовый алгоритм выбора конечной точки аудио по умолчанию

Подсистемы аудиосистем Windows 7 и Windows 10 используют аналогичный алгоритм для определения конечной точки звука по умолчанию. Алгоритм работает следующим образом:

  • Переберите все активные конечные точки, чтобы найти конечную точку, установленную пользователем в качестве предпочтительной по умолчанию для этого приложения (новинка для Windows 10)
    • Если конечная точка определена, то она возвращается, и процесс завершается.
  • Если конечная точка не определена, выполните цикл по всем активным конечным точкам, чтобы найти конечную точку, установленную пользователем в качестве предпочтительной по умолчанию для системы (изменения выбора для Windows 10).
    • Если точка назначения определена, она возвращается, и процесс завершается.
  • Если конечная точка не определена, выполните цикл по всем активным конечным точкам, чтобы найти конечную точку с самым высоким рангом для запрошенной роли, и которая не имеет свойства 'PKEY_AudioDevice_NeverSetAsDefaultEndpoint'. (значения весового ранжирования, измененные для Windows 10).
    • Если конечная точка определена, она возвращается, и процесс завершается.
  • Если конечная точка не определена, запрос завершается кодом ошибки, указывающим E_NOTFOUND.

Существует четыре состояния конечной точки: ACTIVE, UNPLUGGED, DISABLED и NOT PRESENT, которые определены в константах DEVICE_STATE_XXX. Звуковая подсистема рассматривает только активные конечные точки (в настоящем и включенном состоянии), когда она определяет конечную точку звука по умолчанию. Любые события, которые приводят к изменению состояния конечной точки из состояния ACTIVE или в него, могут повлиять на текущую установленную по умолчанию звуковую конечную точку. К таким событиям относятся вставка звукового устройства, отмена отключения устройства и установка нового звукового устройства. В ответ на такие операции аудиосистема Windows запускает алгоритм эвристики конечной точки звука по умолчанию, чтобы определить новую конечную точку звука по умолчанию.

Свойство метки времени конечной точки в Windows 7

Свойство метки времени конечной точки — это ключ свойства, содержащий системное время. В Windows 7 свойство метки времени конечной точки создается или обновляется при установке в качестве конечной точки аудио по умолчанию с помощью приложения "Звук панели управления".

Снимок экрана: выбор конечной точки аудио по умолчанию в приложении

Свойство метки времени связано с каждой ролью, а свойство метки времени используется алгоритмом выбора по умолчанию для определения конечных точек, которые были заданы пользователем по умолчанию для этой роли. Алгоритм определяет конечную точку с новым свойством метки времени в качестве конечной точки по умолчанию.

Свойство Level в Windows 10

Свойство метки времени, используемое в Windows 7 для предпочтения пользователя по умолчанию, не позволяло автоматически выбирать только что подключенное устройство после первоначального выбора по умолчанию. Например, если пользователь в любое время в прошлом установил внутренний динамик в качестве конечной точки по умолчанию, а затем подключил новые USB-наушники, система никогда не будет переключаться на USB-наушники без ручного выбора.

Начиная с Windows 10, выбор по умолчанию строится как древовидная структура прошлых предпочтений, которая учитывает, какие узлы были доступны пользователю на момент выбора по умолчанию. Причина этого в том, что, когда пользователь выбирает конечную точку по умолчанию, он сообщает о своих предпочтениях относительно этой конечной точки по сравнению с другими конечными точками, которые были активны в момент выбора. Пользователь не выражает абсолютное предпочтение для выбранного устройства навсегда и во всех случаях.

Использование и создание свойства Timestamp было удалено из Windows 10, заменено свойством Level. Свойство уровня используется для создания древовидной структуры пользовательских предпочтений. Как и свойство метки времени, существует свойство уровня, связанное с каждой ролью. Свойство уровня создается или обновляется в любое время, когда пользователь выбирает конечную точку по умолчанию через звуковую панель управления, страницу настроек звука или звуковой элемент управления в системном трее.

Алгоритм назначения по умолчанию работает следующим образом:

Если конечная точка выбрана в качестве значения по умолчанию, эта конечная точка перемещается в верхнюю часть структуры дерева, назначив ей самый высокий доступный уровень. Следующий уровень вниз в дереве будет содержать одну или несколько конечных точек, которые были выбраны в прошлом в качестве значения по умолчанию или были активными во время этого выбора, но никогда не были выбраны пользователем. Каждый последующий выбор переносит нужную конечную точку в верхнюю часть списка, смещая ранее выбранные конечные точки вниз и группируя активные конечные точки, которые еще не были выбраны, вместе для создания условий привязки. Если все конечные точки в системе заданы как стандартные, результирующая структура становится простым упорядоченным списком с одной конечной точкой на каждом уровне.

Алгоритм определения по умолчанию работает следующим образом:

Во-первых, активные конечные точки без значения уровня сравниваются с конечной точкой с самым высоким рангом, выбранным по умолчанию. Таким образом, конечные точки, недавно добавленные, получают первую возможность быть значениями по умолчанию, так как они являются самыми новыми в системе и подключены после выбора пользователем предыдущего значения по умолчанию.

Затем, если все активные конечные точки содержат уровень, то конечная точка с самым высоким уровнем без привязки выбирается в качестве значения по умолчанию. Наличие самого высокого уровня указывает, что в какой-то момент в прошлом пользователь установил эту конечную точку в качестве значения по умолчанию, а другие конечные точки с более низким уровнем были активными.

Наконец, если все конечные точки содержат значение уровня, а конечные точки с самыми высокими значениями равны, ранг конечной точки затем используется для разрешения ничьей. Это значит, что эти конечные точки были активными на момент выбора по умолчанию, но сами не были выбраны. У нас нет признаков предпочтения пользователя между этими конечными точками, поэтому используется автоматизированная система ранжирования.

Стоит отметить, что с помощью этого нового алгоритма новая конечная узловая точка получает повышенный вес и становится по умолчанию. Это означает, что поведение драйвера, при котором аудиоустройство кажется новым для системы, может привести к изменению настройки по умолчанию.

Примеры характеристик поведения драйверов и событий, которые приводят к потере настроек пользователя на конечных точках звука и будут признаны системой как "новые", потенциально вызывая изменение устройства по умолчанию:

  • Установка другого драйвера. Например, переключение между драйвером класса HDAudio и соответствующим сторонним драйвером для оборудования. Это ожидается и по проектированию, так как параметры пользователя и доступные конечные точки не считаются одинаковыми между двумя или более не связанными установками драйверов.
  • Удаление и переустановка драйвера. Удаление звукового драйвера вызывает, что AudioEndpointBuilder удаляет настройки пользователя, связанные с драйвером. Установка нового драйвера приведет к созданию новых аудио конечных точек с помощью AudioEndpointBuilder. Это ожидаемое поведение и по проектированию, однако это поведение следует избежать автоматическими установщиками, когда это приведет к неожиданной потере параметров пользователя.
  • Любые изменения в строке ссылки фильтра конечной точки аудио или пин-коде. Конечные точки звука определяются ссылочной строкой, передаваемой в PnP при создании интерфейса KS, а также идентификатором пин-кода внешнего соединителя. Изменение этих значений приведет к созданию новой конечной точки звука. Эта новая конечная точка звука не будет содержать параметры пользователя, связанные с предыдущей строкой ссылки и идентификатором пин-кода соединителя. Ссылочные строки и идентификаторы контактов соединителей не должны изменяться на протяжении всего жизненного цикла установки драйвера, включая обновления драйверов.
  • HDMI или устройство вывода звука изменяет тип терминала или ID приемника. Ожидается, что тип терминала и идентификатор приемника изменяются при присоединении пользователя к системе другого дисплея, другой дисплей — это новая конечная точка с новыми параметрами пользователя, связанными с ним. Однако изменение этих значений при отсутствии соответствующего изменения в присоединенном дисплее будет рассматриваться как потеря параметров пользователя. Идентификатор приемника и тип терминала должны оставаться постоянными для подключенного дисплея.

Эвристическая конечная точка аудио по умолчанию в Windows 10

Эвристика аудиоконечной точки Windows 10 по умолчанию для автоматического выбора конечной точки совпадает с эвристикой Windows 7, с некоторыми незначительными изменениями весовых коэффициентов, чтобы улучшить пользовательский опыт.

Эвристика выбора по умолчанию начинается с сбора сведений о конечной точке звука и учёта факторов. Затем каждому фактору присваивается вес, и взвешенные значения всех факторов суммируются. Результирующая сумма называется рангом конечной точки. Значение ранжирования вычисляется для каждой роли для каждой конечной точки (консоли и связи).

Затем конечная точка с самым высоким рангом выбирается в качестве значения по умолчанию для запрошенной роли.

Эвристические факторы Windows 10

Звуковая подсистема Windows 10 рассматривает следующие характеристики конечной точки или факторы, чтобы выбрать конечную точку звука по умолчанию:

Windows 10 определяет набор значений перечислимого типа для каждого поддерживаемого фактора точки подключения и сохраняет их в реестре. Подробные описания этих факторов и соответствующие наборы перечисляемых значений представлены ниже.

Возможность обнаружения Джека

Конечная точка с этой возможностью подразумевает, что звуковые драйверы могут уведомлять звуковую подсистему, когда подключенное к конечной точке устройство аудио подключено или отключено. Звуковые конечные точки, поддерживающие возможности обнаружения джека, называются динамическими конечными точками, и те, которые не обеспечивают эту поддержку, называются статическими конечными точками. Для поддержки возможностей обнаружения джека драйверы аудиоустройств должны поддерживать свойство KSPROPERTY_JACK_DESCRIPTION2. Дополнительные сведения об этом свойстве см. в KSPROPERTY_JACK_DESCRIPTION2.

Значения перечисления возможностей обнаружения Джека
Поддерживается
Не поддерживается

Эвристика аудиоустройства Windows 10 по умолчанию обрабатывает все USB-аудио устройства и Bluetooth-аудио устройства как поддерживающие обнаружение разъема.

Форм-фактор

Форм-фактор конечной точки звука указывает физические атрибуты конечной точки звука, с которой взаимодействует пользователь, например наушники, динамики или S/PDIF. Чтобы определить форм-фактор конечной точки, звуковая подсистема использует встроенную фиксированную логику для сопоставления категории контакта потоковой передачи ядра (KS) (KSNodeType), которая представлена драйвером звука, с определенным форм-фактором. Дополнительные сведения см. в разделе EndpointFormFactor.

Значения перечисления форм-фактора конечной точки
УдалённоеСетевоеУстройство
Докладчики
Уровень линии
Наушники
Микрофон
Наушники
Телефонная трубка
НеизвестныйЦифровойПроход
SPDIF
Устройство цифрового аудио дисплея
UnknownFormFactor

KSNodeType

Звуковой драйвер выбирает KSNodeType для вывода KS на конечном узле, так как драйвер имеет подробную информацию о звуковом устройстве, которое может быть подключено к аудиоразъему. Таким образом, KsNodeType показывает более конкретные знания о конечной точке, чем его форм-фактор.

Значения перечисления KSNodeType
KSNODETYPE_SPEAKER
KSNODETYPE_MICROPHONE_ARRAY
KSNODETYPE_HEADPHONES

Дополнительные сведения о KsNodeType см. в разделе "Свойство категории pin".

Тип шины

Этот фактор представляет тип шины, из которого было перечислено звуковое устройство, предоставляющее конечные точки звука.

Значения перечисления типа шины
BTHENUM
BTHHFENUM
USB
HDAUDIO
PCI
Неизвестно

Звуковая подсистема предпочитает конечные точки определенного типа шины по сравнению с другими типами шин, когда все остальные характеристики конечных точек идентичны. Например, система обеспечивает приоритет наушников Bluetooth поверх наушников HD Audio, чтобы обеспечить лучший обмен данными для пользователя; то есть, когда конечный пользователь вводит устройство bluetooth наушников на этом компьютере, система делает его устройством по умолчанию.

Общее расположение

Общее расположение указывает физическое валовое расположение джека или устройства, к которому подключена конечная точка звука.

Общие значения перечисления расположения
PrimaryBox (на основном корпусе системы, доступном пользователю)
Внутренние (на материнской плате, недоступные без открытия коробки)
Отдельный (например, мобильный ящик)
Другое

Геометрическое расположение

Геометрическое расположение указывает геометрическое расположение джека или устройства, к которому подключена конечная точка звука.

Геометрические значения перечисляемого типа
eGeoLocRear
eGeoLocFront
eGeoLocLeft
eGeoLocRight
eGeoLocTop
eGeoLocBottom
eGeoLocRearOPanel
eGeoLocRiser

ПодтипСпецифичный

Конкретное свойство подтипа позволяет в будущем расширять эвристическое значение, которое зависит от свойства категории пинов конечной точки. Он позволяет использовать поддерживаемую или неподдерживаемую возможность.

Значения перечисления возможностей специфичных для подтипов
Поддерживается
Не поддерживается

В настоящее время единственное свойство подтипа связано с геометрией массива микрофонов. В контексте геометрии массива микрофонов "Поддерживаемый" означает геометрию передней или задней части. "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
КоэффициентВесов_ОсобенностьПодтипа 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 имеет наивысший приоритет для первого фактора в следующем списке, когда подсистема звука определяет конечную точку консоли по умолчанию.

Возможность обнаружения Джека

Конечные точки с возможностью обнаружения джека предоставляют наиболее up-toсведения о дате в системе о том, подключено ли устройство аудио периферийных устройств к системе и когда оно подключено или отключено. Эта информация помогает создать лучший интерфейс для конечных пользователей, поэтому Windows 10 задает этот фактор как самый высокий приоритет. Конечное устройство с возможностью обнаружения разъема имеет более высокий приоритет, чем устройства без этой функции, независимо от того, как сравниваются другие факторы.

Форм-фактор

Windows 10 использует другой порядок приоритета форм-фактора, чем Windows 7, значения были скорректированы на основе отзывов пользователей и исследований.

Windows 10 задает приоритет формата формы для конечных точек консолей отображения в следующем порядке приоритета:

  • Наушники и гарнитура
  • Докладчики
  • Уровень линии
  • Устройство цифрового аудио дисплея
  • S/PDIF
  • Что-либо другое (обрабатывается с тем же самым низким приоритетом; то есть with_nRankFormFactor_ равно нулю)

Windows 10 устанавливает приоритет форм-фактора для конечных точек консоли захвата в следующем порядке:

  • Наушники
  • Микрофон
  • Уровень линии
  • Что-либо другое (обрабатывается с таким же самым низким приоритетом; то есть при nRankFormFactor, равном нулю)

Например, рассмотрим систему с тремя конечными точками вывода звуковой консоли.

  • Конечная точка статических наушников HD (наушники без возможности обнаружения джека).
  • Статическая конечная точка S/PDIF Out.
  • Конечная точка динамических динамиков (динамики с поддержкой обнаружения джека).

Звуковая подсистема использует эвристическую систему Windows 10 и выбирает конечную точку громкоговорителей в качестве консольной конечной точки воспроизведения аудио по умолчанию, даже если форм-фактор динамиков имеет более низкий приоритет, чем форм-фактор наушников. Конечная точка динамиков выбирается, так как она поддерживает обнаружение джека, которое имеет более высокий приоритет над форм-фактором, в то время как наушники не имеют этой возможности.

Если конечная точка динамических USB-наушников представлена в приведенном выше примере, подсистема звука Windows 7 выбирает эту конечную точку в качестве конечной точки отрисовки консоли по умолчанию. Этот выбор обусловлен тем, что форм-фактор наушников имеет более высокий приоритет, чем форм-фактор динамиков, когда оба устройства поддерживают обнаружение джека.

KSNodeType

Как упоминалось ранее, KSNodeType предоставляет более подробные сведения, чем указано форм-фактором для звукового устройства, подключенного к конечной точке. Windows 10 определяет три типа узлов KSNodeTypes, связанных с микрофоном, для дальнейшей приоритизации конечных точек с форм-фактором микрофона, но с различным типом узла KSNodeType. Они ранжируются в порядке приоритета следующим образом:

  • KSNODETYPE_PROCESSING_MICROPHONE_ARRAY
  • KSNODETYPE_MICROPHONE_ARRAY
  • KSNODETYPE_МИКРОФОН_ОМНИДИРЕКЦИОНАЛЬНЫЙ
  • Всё остальное (обрабатывается с таким же низким приоритетом, где 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 . Дополнительные сведения см. в разделе "Свойство описания Джека".

Геометрическое расположение

Windows 10 оценивает значения перечисления для геометрического расположения в следующем порядке приоритета от самого высокого до низкого приоритета:

  • Front и InsideMobileLid
  • Нижний, левый, внешнийMobileLid, задний, правый и верхний
  • Задняя панель
  • Другие (обрабатываются с тем же самым низким приоритетом; то есть с nRankGeoLoc равно нулю)

Звуковые драйверы сообщают сведения о геометрическом расположении конечных точек через свойство KSPROPERTY_JACK_DESCRIPTION . Дополнительные сведения см. в разделе "Свойство описания Джека".

Исключения

Помимо предыдущих эвристических факторов, Windows 10 имеет 3 исключения для эвристики устройства консоли по умолчанию. В Windows 7 было только 1 исключение.

Первое исключение, присутствующее как в Windows 7, так и в 10, предотвращает выбор очевидных коммуникационных конечных точек, таких как Гарнитура и Громкая связь, в качестве консольной конечной точки по умолчанию. В частности, звуковая подсистема понижает результат WeightedRankValue для конечных точек, имеющих одно из следующих значений KSNodeType:

  • 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 снизил эти KSNodeTypes для конечной точки консоли по умолчанию для всех типов шин. Для Windows 10 эти типы узлов KS понижены только для не USB-шин.

  • KSNODETYPE_PERSONAL_MICROPHONE
  • KSNODETYPE_COMMUNICATION_SPEAKER
  • KSNODETYPE_HEADSET

Для третьего исключения явно вводятся предпочтения для "личных" конечных точек , таких как наушники и гарнитуры, которые физически подключены к системе с проводом. В некоторых примерах будут проводные USB-гарнитуры и проводные 3,5 мм наушники. В отличие от предыдущих 2 исключений, это исключение обновляет эти конечные точки, чтобы они были предпочтительнее для конечной точки консоли по умолчанию. Это исключение введено в Windows 10 для улучшения конфиденциальности пользователей; оно отдает предпочтение конечным точкам, которые могут слышать только пользователи, над конечными точками громкой связи, доступными для других.

Параметры эвристики папки "Входящие" для конечной точки аудио связи по умолчанию

В этом разделе описаны параметры эвристики по умолчанию каждого фактора для конечной точки аудио связи. Факторы перечислены в порядке приоритета; То есть Windows 10 имеет наивысший приоритет для первого фактора в следующем списке при вычислении конечной точки связи по умолчанию. Единственное различие между эвристиками конечных точек консоли по умолчанию и конечными точками связи по умолчанию является в параметрах форм-фактора и правиле исключений.

Возможность обнаружения Джека

Эвристические параметры обнаружения джека одинаковы как для конечных точек аудио связи по умолчанию, так и для конечных точек звука консоли по умолчанию.

Форм-фактор

Создаются различные списки приоритетов для устройств по умолчанию, отвечающих за обработку и захват коммуникаций.

Приоритет форм-фактора для точек захвата по умолчанию в порядке приоритета (от высокого приоритета до наименьшего) выглядит следующим образом:

  • Наушники
  • Телефонная трубка
  • Микрофон
  • Уровень линии

Приоритет форм-фактора для конечных точек отображения по умолчанию в порядке приоритета (от самого высокого до самого низкого) выглядит следующим образом:

  • Наушники
  • Телефонная трубка
  • Наушники
  • Докладчики
  • Уровень линии
  • DigitalAudioDisplayDevice (HDMI или DisplayPort)
  • S/PDIF
  • Что-либо другое (обрабатывается с таким же самым низким приоритетом; то есть при nRankFormFactor, равном нулю)

KSNodeType

Эвристические параметры KsNodeType одинаковы как для конечных точек аудио по умолчанию, так и для конечных точек звука консоли по умолчанию.

Тип автобуса

Эвристические параметры типа шины одинаковы как для конечных точек аудио связи по умолчанию, так и для конечных точек звука консоли по умолчанию.

Общее расположение

Windows 10 располагает значения перечисления для общего расположения в порядке убывания приоритета от самого высокого до низкого приоритета.

  • Отделять
  • PrimaryBox
  • Внутреннее
  • Другие (обрабатываются с тем же самым низким приоритетом; то есть nRankGenLoc равно нулю)

Звуковые драйверы сообщают общие сведения о расположении конечных точек с помощью свойства KSPROPERTY_JACK_DESCRIPTION. Дополнительные сведения см. в разделе "Свойство описания Джека".

Геометрическое расположение

Windows 10 оценивает значения перечисления для геометрического расположения в следующем порядке приоритета от самого высокого до низкого приоритета:

  • Front и InsideMobileLid
  • Другие (обрабатываются с тем же самым низким приоритетом; то есть с nRankGeoLoc равно нулю)

Звуковые драйверы сообщают сведения о геометрическом расположении конечных точек с помощью свойства KSPROPERTY_JACK_DESCRIPTION. Дополнительные сведения см. в разделе "Свойство описания Джека".

Исключения

Помимо предыдущих эвристических факторов, Windows 10 также имеет три исключения, реализованные для эвристики устройств связи по умолчанию, в то время как Windows 7 только одна.

Первое исключение отдает предпочтение очевидным конечным точкам, ориентированным на коммуникацию, таким как трубка и громкая связь, чтобы быть выбраны в качестве конечной точки связи по умолчанию. В частности, звуковая подсистема обновляет результат WeightedRankValue для конечных точек с KSNodeType, которые соответствуют любому из следующих значений:

  • 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
  • Специальные звуковые конечные точки, которые существуют только в мобильных сценариях и не могут использоваться для передачи аудио при связи

На момент написания этой статьи существует третье исключение, которое заключается в предпочтении сотовых аудиоконечных точек. Это исключение существует только для мобильных сценариев с возможностями сотовой связи и выходит за рамки этой документации. Так как этот тип конечной точки будет существовать только в мобильных системах, это исключение можно безопасно игнорировать.

См. также

Свойство Описания Джека

KSPROPERTY_JACK_DESCRIPTION2

KSPROPERTY_JACK_DESCRIPTION3

закрепление свойства категории

SetupPreferredAudioDevices