Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Podsystem audio systemu Windows 10 używa algorytmu z rozszerzonymi heurystykami dla domyślnego wyboru punktu końcowego audio. W tym temacie opisano te heurystyki i sposób, w jaki podsystem audio systemu Windows 10 używa ich do wybierania domyślnego punktu końcowego audio. Aby najlepiej zrozumieć nowy mechanizm wyboru systemu Windows 10, w tym temacie wyjaśniono również, jak domyślny wybór punktu końcowego audio występuje w systemie Windows 7. Docelowi odbiorcy tego tematu to OEM i IHV.
Te informacje dotyczą systemu operacyjnego Windows 10.
Referencje i zasoby omówione tutaj znajdują się na końcu tego tematu.
Wprowadzenie
Większość urządzeń audio pc zawiera wiele logicznie niezależnych funkcji audio. W systemach Windows 7 i Windows 10 każda funkcja jest uwidoczniona jako oddzielny punkt końcowy audio. Punkty końcowe są wyświetlane w aplikacji Dźwięk panelu sterowania, jak pokazano w poniższym przykładowym oknie dialogowym z systemu Windows 7.
A na nowej stronie ustawień dźwięku dostępnej w systemie Windows 10.
Tylko jeden punkt końcowy audio w danym momencie można ustawić jako domyślny dla określonej konsoli lub roli komunikacji. Jednak począwszy od systemu Windows 10 istnieje możliwość określenia innego punktu końcowego dla tych ról dla różnych aplikacji przy użyciu strony preferencji woluminu aplikacji i urządzenia.
Podsystemy audio systemu Windows 7 i Windows 10 używają podobnych algorytmów do określenia domyślnego punktu końcowego dźwięku, gdy nie określono preferencji użytkownika. Jednak algorytm systemu Windows 10 różni się od systemu Windows 7 w sposób, w jaki obsługuje wybór użytkownika domyślnego i obsługuje preferencje dla poszczególnych aplikacji.
W tym temacie opisano sposób wybierania domyślnego punktu końcowego audio w systemie Windows 10. Aby lepiej zrozumieć, co nowego w systemie Windows 10, domyślny wybór punktu końcowego audio w systemie Windows 7 jest również wyjaśniony.
Podstawowy algorytm domyślnego wyboru punktu końcowego audio
Podsystemy audio systemu Windows 7 i Windows 10 używają podobnego algorytmu do określenia domyślnego punktu końcowego dźwięku. Algorytm działa w następujący sposób:
- Iterowanie po wszystkich aktywnych punktach końcowych w celu znalezienia punktu końcowego ustawionego jako preferowany domyślny przez użytkownika dla tej aplikacji (Nowy dla systemu Windows 10)
- Jeśli punkt końcowy zostanie zidentyfikowany, zostanie zwrócony, a proces zostanie ukończony.
- Jeśli żaden punkt końcowy nie zostanie zidentyfikowany, przejmij pętlę przez wszystkie aktywne punkty końcowe, aby znaleźć punkt końcowy ustawiony jako preferowany przez użytkownika dla systemu (wybór zmodyfikowany dla systemu Windows 10).
- Jeśli punkt końcowy zostanie zidentyfikowany, zostanie zwrócony, a proces zostanie ukończony.
- Jeśli żaden punkt końcowy nie zostanie zidentyfikowany, przejdź przez wszystkie aktywne punkty końcowe, aby znaleźć punkt końcowy z najwyższą wartością właściwości "rank" dla żądanej roli, który nie ma ustawionej jako domyślny właściwości PKEY_AudioDevice_NeverSetAsDefaultEndpoint. (zmodyfikowane wartości wag rankingowych dla systemu Windows 10).
- Jeśli punkt końcowy zostanie zidentyfikowany, zostanie zwrócony, a proces zostanie ukończony.
- Jeśli żaden punkt końcowy nie zostanie zidentyfikowany, żądanie zakończy się niepowodzeniem z komunikatem E_NOTFOUND.
Istnieją cztery stany punktu końcowego: AKTYWNE, UNPLUGGED, DISABLED i NOT PRESENT, które są zdefiniowane w DEVICE_STATE_XXX stałe. Podsystem audio uwzględnia tylko aktywne punkty końcowe (w stanie obecnym i włączonym), gdy określa domyślny punkt końcowy audio. Wszelkie zdarzenia, które powodują zmianę stanu punktu końcowego z lub na stan AKTYWNY, mogą mieć wpływ na bieżący domyślny punkt końcowy audio. Takie zdarzenia obejmują wstawianie urządzenia audio, odłączanie urządzenia i instalowanie nowego urządzenia audio. W odpowiedzi na takie operacje podsystem audio systemu Windows uruchamia domyślny algorytm heurystyczny punktu końcowego audio w celu określenia nowego domyślnego punktu końcowego dźwięku.
Właściwość znacznika czasu punktu końcowego w systemie Windows 7
Właściwość znacznika czasu punktu końcowego jest kluczem właściwości zawierającym czas systemowy. W systemie Windows 7 właściwość znacznika czasu punktu końcowego jest tworzona lub aktualizowana po ustawieniu go jako domyślnego punktu końcowego dźwięku w aplikacji Dźwięk w Panelu sterowania.
Właściwość znacznika czasu jest skojarzona z każdą rolą, a właściwość znacznika czasu jest używana przez domyślny algorytm wyboru do identyfikowania punktów końcowych, które zostały ustawione jako preferowane domyślnie przez użytkownika dla tej roli. Algorytm zidentyfikuje punkt końcowy z najnowszą właściwością znacznika czasu jako domyślny punkt końcowy.
Właściwość Level w systemie Windows 10
Właściwość znacznika czasu, która została użyta w systemie Windows 7 dla preferencji domyślnej użytkownika, nie zezwalała na automatyczne wybieranie nowo dołączonego urządzenia po początkowym zaznaczeniu domyślnym. Na przykład, jeśli użytkownik ustawił głośnik wewnętrzny jako domyślny punkt końcowy w przeszłości, a następnie podłączył nowe słuchawki USB, system nie przełączałby się na słuchawki USB bez ręcznego wyboru.
Począwszy od systemu Windows 10, wybór domyślny użytkownika jest tworzony jako struktura przypominająca drzewo wcześniejszych preferencji, która uwzględnia, jakie punkty końcowe były dostępne w momencie domyślnego zaznaczenia przez użytkownika. Przyczyną tego jest to, że gdy użytkownik wybierze domyślny punkt końcowy, komunikuje swoje preferencje dotyczące tego punktu końcowego w stosunku do innych punktów końcowych, które były aktywne w momencie wyboru. Użytkownik nie komunikuje bezwzględnych preferencji dla wybranego urządzenia na zawsze i we wszystkich sytuacjach.
Wykorzystanie i tworzenie właściwości Timestamp zostało usunięte z Windows 10, zastąpione przez właściwość Level. Właściwość level służy do tworzenia struktury przypominającej drzewo preferencji użytkownika. Podobnie jak właściwość znacznika czasu, istnieje właściwość poziomu skojarzona z każdą rolą. Właściwość level jest tworzona lub aktualizowana za każdym razem, gdy użytkownik wybierze domyślne urządzenie końcowe przez panel sterowania dźwiękiem, stronę ustawień dźwięku, lub kontrolę audio w zasobniku systemowym.
Domyślny algorytm przypisania działa w następujący sposób:
Po wybraniu punktu końcowego jako domyślnego punkt końcowy zostanie przeniesiony do góry struktury przypominającej drzewo, przypisując mu najwyższy dostępny poziom. Następny poziom w drzewie będzie zawierać jeden lub więcej punktów końcowych, które zostały wybrane w przeszłości jako domyślne lub były aktywne w czasie tego zaznaczenia, ale nigdy nie zostały wybrane przez użytkownika. Każde kolejne zaznaczenie przenosi żądany punkt końcowy na górę listy, przesuwając wcześniejsze wybory w dół i grupując aktywne, ale jeszcze niewybrane punkty końcowe razem, w ten sposób tworząc sytuacje remisowe. W przypadku, gdy wszystkie punkty końcowe w systemie są ustawione jako domyślne, wynikowa struktura staje się prostą uporządkowaną listą z jednym punktem końcowym na każdym poziomie.
Domyślny algorytm określania działa w następujący sposób:
Po pierwsze, aktywne punkty końcowe bez wartości poziomu są porównywane, a punkt końcowy o najwyższej randze jest wybierany domyślnie. W ten sposób punkty końcowe, które zostały ostatnio dodane, są pierwszymi, które mogą stać się domyślnymi, ponieważ są najnowsze w systemie i zostały podłączone po tym, jak użytkownik wybrał poprzedni domyślny.
Następnie, jeśli wszystkie aktywne punkty końcowe zawierają poziom, punkt końcowy o najwyższym poziomie, bez remisu, zostanie wybrany jako domyślny. Posiadanie najwyższego poziomu wskazuje, że w pewnym momencie w przeszłości użytkownik ustawił ten punkt końcowy jako domyślny, podczas gdy inne punkty końcowe, z niższą wartością poziomu, były aktywne.
Na koniec, jeśli wszystkie punkty końcowe zawierają wartość poziomu, a punkty końcowe z najwyższymi wartościami poziomu są powiązane, ranga punktu końcowego jest następnie używana do rozstrzygnięcia remisu. Oznacza to, że te punkty końcowe były aktywne w momencie dokonania wyboru domyślnego, ale same nie zostały wybrane. Nie mamy żadnych wskazówek dotyczących preferencji użytkownika między tymi punktami końcowymi, więc jest używany zautomatyzowany system klasyfikowania.
Warto zauważyć, że w przypadku tego nowego algorytmu nowy punkt końcowy otrzymuje zwiększoną wagę, aby stać się domyślnym. Oznacza to, że zachowanie sterownika, które powoduje pojawienie się nowego punktu końcowego dźwięku w systemie, może spowodować zmianę domyślną.
Przykłady zachowań sterowników i zdarzeń, które powodują utratę ustawień użytkownika w punktach końcowych dźwięku i sprawią, że punkt końcowy dźwięku pojawi się "nowy" w systemie, potencjalnie wyzwalając zmianę na urządzeniu domyślnym, są następujące:
- Instalowanie innego sterownika. Na przykład przełączanie między sterownikiem klasy HDAudio a zgodnym sterownikiem innej firmy dla sprzętu. Jest to oczekiwane i zgodnie z projektem, ponieważ ustawienia użytkownika i dostępne punkty końcowe nie są zakładane, że są takie same między dwiema lub więcej niepowiązanymi instalacjami sterowników.
- Odinstalowywanie i ponowne instalowanie sterownika. Odinstalowanie sterownika audio powoduje, że element AudioEndpointBuilder usuwa ustawienia użytkownika skojarzone ze sterownikiem. Zainstalowanie nowego sterownika spowoduje, że program AudioEndpointBuilder utworzy nowe punkty końcowe audio. Jest to oczekiwane zachowanie i zgodnie z projektem, jednak należy unikać tego zachowania przez automatyczne instalatory, gdy powoduje nieoczekiwaną utratę ustawień użytkownika.
- Jakiekolwiek zmiany w łańcuchu referencyjnym filtra końcówki audio lub identyfikatorze pinu. Punkty końcowe audio są identyfikowane przez ciąg parametrów przekazany do PnP podczas tworzenia interfejsu KS oraz identyfikator pinu dla łącznika zewnętrznego. Zmiana tych wartości spowoduje utworzenie nowego punktu końcowego dźwięku. Ten nowy punkt końcowy audio nie będzie zawierać ustawień użytkownika skojarzonych z poprzednim ciągiem odwołania i identyfikatorem pin łącznika. Ciągi referencyjne i identyfikatory PIN łącznika nie mogą ulec zmianie przez cały okres użytkowania instalacji sterownika, w tym między aktualizacjami sterowników.
- HDMI lub urządzenie wyświetlające dźwięk zmieniające typ terminalu lub identyfikator urządzenia docelowego. Oczekuje się, że typ terminalu i identyfikator ujścia zostaną zmienione, gdy użytkownik dołączy inny ekran do systemu, inny ekran to nowy punkt końcowy z skojarzonymi nowymi ustawieniami użytkownika. Jednak zmiana tych wartości w przypadku braku odpowiedniej zmiany dołączonego wyświetlania będzie postrzegana jako utrata ustawień użytkownika. Identyfikator ujścia i typ terminalu muszą pozostać stałe dla dołączonego wyświetlacza.
Domyślny heurystyczny punkt końcowy audio w systemie Windows 10
Windows 10 wykorzystuje domyślną heurystykę wyboru punktu końcowego audio, która jest taka sama jak w systemie Windows 7, z kilkoma drobnymi zmianami wag czynników w celu zapewnienia lepszego doświadczenia użytkownika.
Domyślna metoda wyboru rozpoczyna się od zbierania informacji o punkcie końcowym dźwięku i uwzględnienia różnych czynników. Każdy współczynnik jest następnie ważony, a wynikowe wartości ważone dla wszystkich czynników są sumowane. Wynikowa suma jest nazywana rangą punktu końcowego. Wartość rangi jest obliczana dla każdej roli dla każdego punktu końcowego (konsoli i komunikacji).
Punkt końcowy o najwyższej rangi jest następnie wybierany jako domyślny dla żądanej roli.
Czynniki heurystyczne systemu Windows 10
Podsystem audio systemu Windows 10 uwzględnia następujące cechy punktu końcowego lub czynniki, aby wybrać domyślny punkt końcowy audio:
- Możliwość wykrywania jacka
- Faktor
- KSNodeType
- Typ magistrali
- Lokalizacja ogólna
- Lokalizacja geometryczna
- SpecyficznyPodtyp
- Mogą istnieć dodatkowe czynniki, które nie mają wpływu na role konsoli lub komunikacji i znajdują się poza zakresem tej dokumentacji.
System Windows 10 definiuje zestaw wartości wyliczeniowych dla każdego obsługiwanego czynnika końcowego i przechowuje je w rejestrze. Szczegółowe opisy tych czynników i ich odpowiadających im zestawów wartości wyliczanych są następujące.
Możliwość wykrywania jacka
Punkt końcowy z tą możliwością oznacza, że sterowniki audio mogą powiadamiać podsystem audio, gdy urządzenie peryferyjne audio podłączone do punktu końcowego jest podłączone lub odłączone. Punkty końcowe audio, które obsługują funkcję wykrywania jacka, są nazywane dynamicznymi punktami końcowymi, a te, które nie zapewniają tej obsługi, są nazywane statycznymi punktami końcowymi. Aby zapewnić obsługę możliwości wykrywania jacka, sterowniki urządzeń audio muszą obsługiwać właściwość KSPROPERTY_JACK_DESCRIPTION2. Aby uzyskać więcej informacji na temat tej właściwości, zobacz KSPROPERTY_JACK_DESCRIPTION2.
| Wartości wyliczenia zdolności wykrywania jacka |
|---|
| Wsparte |
| NotSupported |
Domyślna heurystyka urządzenia audio systemu Windows 10 traktuje wszystkie urządzenia audio USB i urządzenia audio Bluetooth jako zdolne do wykrywania gniazda.
Format
Kształt punktu końcowego audio wskazuje fizyczne atrybuty punktu końcowego dźwięku, z którym użytkownik wchodzi w interakcję, na przykład słuchawki, głośniki lub S/PDIF. Aby określić format urządzenia punktu końcowego, podsystem audio używa stałej logiki wbudowanej do mapowania kategorii pinu Kernel Streaming (KS) (KSNodeType), która jest udostępniana przez sterownik audio, na określony format urządzenia. Aby uzyskać więcej informacji, zobacz EndpointFormFactor.
| Wyliczenia formatu urządzenia końcowego |
|---|
| ZdalneUrządzenieSieciowe |
| Głośniki |
| Poziom linii |
| Słuchawki |
| Mikrofon |
| Zestaw słuchawkowy |
| Słuchawka |
| NieznaneCyfrowePrzejście |
| SPDIF |
| Urządzenie do Wyświetlania Cyfrowego Dźwięku |
| UnknownFormFactor |
KSNodeType
Sterownik audio wybiera parametr KSNodeType dla numeru PIN KS w punkcie końcowym, ponieważ sterownik ma szczegółową wiedzę na temat urządzenia audio, które może być podłączone do gniazda audio. W związku z tym KsNodeType ujawnia bardziej szczegółową wiedzę na temat punktu końcowego niż jego forma.
| Wartości wyliczenia KSNodeType |
|---|
| KSNODETYPE_SPEAKER |
| KSNODETYPE_MICROPHONE_ARRAY |
| KSNODETYPE_HEADPHONES |
Aby uzyskać bardziej szczegółowe informacje o typie KsNodeType, zobacz Właściwość Kategorii Pinów.
Typ magistrali
Ten czynnik reprezentuje typ magistrali, z której zostało zidentyfikowane urządzenie audio, udostępniające punkty końcowe audio.
| Wartości typu wyliczeniowego magistrali |
|---|
| BTHENUM |
| BTHHFENUM |
| USB |
| HDAUDIO |
| PCI |
| Nieznany |
Podsystem audio faworyzuje punkty końcowe w określonym typie magistrali nad innymi typami magistrali, gdy wszystkie inne cechy punktów końcowych są identyczne. Na przykład system zapewnia priorytet słuchawek Bluetooth na pokładzie słuchawek HD Audio w celu zapewnienia lepszej komunikacji dla użytkownika; oznacza to, że gdy użytkownik końcowy wprowadza urządzenie słuchawkowe Bluetooth na tym komputerze, system sprawia, że jest to urządzenie domyślne.
Lokalizacja ogólna
Lokalizacja ogólna wskazuje przybliżoną fizyczną lokalizację gniazda lub urządzenia, z którym jest połączony punkt końcowy audio.
| Wartości wyliczeniowe lokalizacji |
|---|
| PrimaryBox (na podstawowej obudowie systemu dostępnej dla użytkownika) |
| Wewnętrzne (na płycie głównej, niedostępne bez otwierania pudełka) |
| Oddzielne (takie jak pudełko mobilne) |
| Pozostałe |
Lokalizacja geometryczna
Lokalizacja geometryczna wskazuje geometryczną lokalizację gniazda lub urządzenia, z którym jest połączony punkt końcowy audio.
| Wartości lokalizacji geometrycznej enum |
|---|
| eGeoLocRear |
| eGeoLocFront |
| eGeoLocLeft |
| eGeoLocRight |
| eGeoLocTop |
| eGeoLocBottom |
| eGeoLocRearOPanel |
| eGeoLocRiser |
SpecyficznyPodtyp
Właściwość specyficzna podtypu umożliwia przyszłe rozszerzenia wartości heurystycznej, która jest zależna od właściwości kategorii pinezki punktu końcowego. Umożliwia obsługę obsługiwanej/nieobsługiwanej funkcji.
| Wartości wyliczeniowe typu SubtypeSpecific |
|---|
| Wsparte |
| NotSupported |
Obecnie jedyną właściwością, która jest specyficzna dla podtypu, jest ta powiązana z geometrią matrycy mikrofonów. W kontekście geometrii tablicy mikrofonów, "Obsługiwane" odnosi się do geometrii przedniej/tylnej. Element "NotSupported" wskazuje inną geometrię. Jeśli istnieje więcej niż jedna macierz mikrofonów, można preferować geometrię przednią lub tylną.
Szczegóły heurystyczne systemu Windows 10
Domyślne urządzenie audio systemu Windows 10 wykorzystuje heurystykę do przypisywania wag każdemu czynnikowi punktu końcowego. Im wyższy jest priorytet czynnika, tym większa jest jego waga. W tym temacie użyto WeightFactor_Xxx do zidentyfikowania priorytetu czynnika.
Ponadto heurystyka systemu Windows 10 przypisuje wartość rangi (nRankXxx w tym temacie) do każdej wartości wyliczenia w kategorii współczynnika. Ta wartość rangi określa względną ważność wśród wszystkich wartości wyliczenia pod tym samym czynnikiem.
Te wartości WeightFactor_Xxx i nRankXxx są przechowywane przez system Windows w rejestrze podczas instalacji systemu operacyjnego. Zestaw parametrów dla obliczenia klasyfikacji heurystycznej zależy od cech punktu końcowego. W poniższej tabeli przedstawiono przykładowy zestaw parametrów.
| Waga współczynnika punktu końcowego | Ranga współczynnika punktu końcowego |
|---|---|
| WeightFactor_JackDet | nRankJackDet |
| WeightFactor_SubType | nRankSubType |
| WeightFactor_FormFactor | nRankFormFactor |
| CzynnikWagi_TypAutobusu | nRankBusType |
| WeightFactor_GenLoc | nRankGenLoc |
| WeightFactor_GeoLoc | nRankGeoLoc |
| WeightFactor_SubtypeSpecific | nRankSubtypeSpecific |
Podsystem audio oblicza rangę ważoną punktu końcowego we wszystkich jego czynnikach w następujący sposób:
WeightedRankValue =
WeightFactor_JackDet * nRankJackDet +
WeightFactor_SubType * nRankSubType +
WeightFactor_FormFactor * nRankFormFactor +
WeightFactor_BusType * nRankBusType +
WeightFactor_GenLoc * nRankGenLoc +
WeightFactor_GeoLoc * nRankGeoLoc |
WeightFactor_SubtypeSpecific * nRankSubtypeSpecific.
Podsystem audio oblicza ważoną wartość klasyfikacji dla wszystkich aktywnych punktów końcowych i wybiera punkt końcowy o najwyższej rangi jako domyślny punkt końcowy audio.
Domyślny mechanizm wyboru heurystycznego punktu końcowego audio systemu Windows 10 obsługuje również funkcję wyjątku. Ta funkcja umożliwia systemowi lub producentowi OEM wyznaczenie punktu końcowego zgodnego z określonym zestawem cech z bardzo wysokimi lub bardzo niskimi wartościami rangowymi. Takie oznaczenia sprawiają, że heurystyka systemu jest bardziej elastyczna, gdy zajmuje się nieoczekiwanymi scenariuszami.
Heurystyka roli urządzenia konsoli i roli urządzenia komunikacyjnego są oddzielne, ale mechanizm jest dokładnie taki sam, przy uwzględnieniu kolejności czynników w zależności od roli.
Ustawienia heurystyczne skrzynki odbiorczej systemu Windows 10
System Windows 10 jest dostarczany z ustawieniami opartymi na szczegółach heurystycznych w tym temacie. Domyślny punkt końcowy dźwięku konsoli i domyślny punkt końcowy audio komunikacji mają różne ustawienia. W tej sekcji opisano ustawienia obu typów punktów końcowych.
Ustawienia heurystyczne skrzynki odbiorczej dla domyślnego punktu końcowego dźwięku konsoli
W tej sekcji opisano domyślne ustawienia heurystyczne dla każdego czynnika dla punktu końcowego dźwięku konsoli. Czynniki są wymienione w kolejności priorytetów; oznacza to, że system Windows 10 ma najwyższy priorytet dla pierwszego czynnika na poniższej liście, gdy podsystem audio określa domyślny punkt końcowy konsoli.
Możliwość wykrywania jacka
Punkty końcowe z funkcją wykrywania gniazda zapewniają najbardziej up-to— informacje o dacie w systemie, czy urządzenie peryferyjne audio jest fizycznie dołączone do systemu i kiedy jest podłączone lub odłączone. Te informacje ułatwiają tworzenie lepszego środowiska użytkownika końcowego, dlatego system Windows 10 ustawia ten czynnik jako najwyższy priorytet. Punkt końcowy z funkcją wykrywania jacka ma wyższy priorytet niż punkty końcowe bez tej funkcji, niezależnie od innych czynników.
Faktor
Windows 10 używa innej kolejności priorytetu formatów niż Windows 7, a wartości zostały dostosowane na podstawie opinii użytkowników i badań.
System Windows 10 ustawia priorytet form factorów dla punktów końcowych konsoli renderowania w następującej kolejności:
- Słuchawki i zestaw słuchawkowy
- Głośniki
- Poziom linii
- Urządzenie do Wyświetlania Cyfrowego Dźwięku
- S/PDIF
- Wszystkie inne elementy (traktowane z tym samym najniższym priorytetem, czyli with_nRankFormFactor_ równe zero)
System Windows 10 ustawia priorytet formatu dla punktów końcowych konsoli przechwytywania w następującej kolejności:
- Zestaw słuchawkowy
- Mikrofon
- Poziom linii
- Wszystkie inne elementy (traktowane z tym samym najniższym priorytetem, czyli z nRankFormFactor równe zero)
Rozważmy na przykład system z trzema punktami końcowymi renderowania konsoli audio:
- Punkt końcowy statycznych słuchawek audio HD (możliwość wykrywania słuchawek bez gniazda).
- Punkt końcowy wyjścia S/PDIF statyczny.
- Punkt końcowy głośników dynamicznych (głośniki z obsługą wykrywania jacka).
Podsystem audio korzysta z heurystyki systemu Windows 10 i wybiera wyjście głośników dynamicznych jako domyślne wyjście audio dla renderowania na konsoli, mimo że forma głośników ma niższy priorytet w porównaniu do formy słuchawek. Punkt końcowy głośników jest wybierany, ponieważ jest w stanie wykrywać gniazdo, co ma wyższy priorytet niż format, podczas gdy słuchawki nie mają tej funkcji.
Jeśli w powyższym przykładzie zostanie wprowadzony dynamiczny punkt końcowy słuchawek USB, podsystem audio systemu Windows 7 wybierze ten punkt końcowy jako domyślny punkt końcowy renderowania konsoli. Jest to spowodowane tym, że forma słuchawek ma wyższy priorytet niż forma głośników, gdy oba urządzenia obsługują wykrywanie gniazda.
KSNodeType
Jak wspomniano wcześniej, KSNodeType zawiera szczegółowsze informacje niż te wskazywane przez format dla urządzenia audio podłączonego do punktu końcowego. System Windows 10 definiuje trzy typy węzłów KSNodeTypes związane z mikrofonami, aby dalej priorytetyzować punkty końcowe o formie mikrofonu, ale o różnych typach węzłów KSNodeType. Są one klasyfikowane w kolejności priorytetów w następujący sposób:
- KSNODETYPE_PROCESSING_MICROPHONE_ARRAY
- KSNODETYPE_MICROPHONE_ARRAY
- KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE
- Wszystkie inne elementy (traktowane z tym samym najniższym priorytetem, czyli z nRankSubType równym zeru)
Rozważmy na przykład system z dwoma punktami końcowymi przechwytywania dźwięku:
- Wbudowany statyczny punkt końcowy tablicy mikrofonów z KSNODETYPE_MICROPHONE_ARRAY.
- Statyczny punkt końcowy mikrofonu z KSNODETYPE_MICROPHONE.
Gdy podsystem audio używa heurystyki systemu do wybrania domyślnego punktu końcowego przechwytywania dźwięku konsoli, wybiera punkt końcowy tablicy mikrofonów. Tablica mikrofonów jest zaznaczona, ponieważ chociaż oba punkty końcowe mają taką samą możliwość wykrywania jacka i współczynnik formy, tablica mikrofonu KsNodeType ma wyższy priorytet niż mikrofon. Oznacza to, że KSNODETYPE_MICROPHONE_ARRAY ma wyższy priorytet niż KSNODETYPE_MICROPHONE, który nie znajduje się na liście i należy do kategorii "innych".
Aby uzyskać więcej informacji na temat właściwości KsNodeType, zobacz Właściwość Kategorii przypinania.
Typ autobusu
System Windows 10 ustala wartości wyliczenia dla typów magistrali punktów końcowych w następującej kolejności od najwyższego do najniższego priorytetu:
- USB
- HDAudio i UnknownBusType (zazwyczaj system SOC)
- PCI
- BTHENUM
- BTHHFENUM
- Inne (traktowane z tym samym najniższym priorytetem, czyli z nRankBusType równe zero)
Lokalizacja ogólna
System Windows 10 klasyfikuje wartości wyliczenia dla lokalizacji ogólnej w następującej kolejności priorytetu, od najwyższego do najniższego priorytetu:
- PrimaryBox i Internal
- Inne (traktowane z tym samym najniższym priorytetem, czyli nRankGenLoc jest równe zero)
Sterowniki audio raportują ogólne informacje o lokalizacji swoich punktów końcowych za pośrednictwem właściwości KSPROPERTY_JACK_DESCRIPTION . Aby uzyskać szczegółowe informacje, zobacz Właściwość Jack Description.
Lokalizacja geometryczna
System Windows 10 klasyfikuje wartości wyliczenia dla lokalizacji geometrycznej w następującej kolejności priorytetu, od najwyższego do najniższego priorytetu:
- Front i InsideMobileLid
- Dolne, lewe, zewnętrzneMobileLid, tylne, prawe i górne
- Panel tylny
- Inne (traktowane z tym samym najniższym priorytetem, czyli z nRankGeoLoc równym zero)
Sterowniki audio zgłaszają informacje o lokalizacji geometrycznej swoich punktów końcowych za pośrednictwem właściwości KSPROPERTY_JACK_DESCRIPTION . Aby uzyskać szczegółowe informacje, zobacz Właściwość Jack Description.
Wyjątki
Oprócz powyższych czynników heurystycznych system Windows 10 ma 3 wyjątki dla domyślnego heurystycznego urządzenia konsoli. System Windows 7 miał tylko 1 wyjątek.
Pierwszy wyjątek, obecny zarówno w systemie Windows 7, jak i 10, uniemożliwia wybranie oczywistych punktów końcowych zorientowanych na komunikację , takich jak słuchawka i telefon głośnikowy, jako domyślnego punktu końcowego konsoli. W szczególności podsystem audio obniży wynik WeightedRankValue dla punktów końcowych, które mają jedną z następujących wartości KSNodeType:
- KSNODETYPE_GŁOŚNIK_I_SŁUCHAWKI
- KSNODETYPE_SPEAKERS_STATIC_JACK
- KSNODETYPE_HANDSET
- KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION
- KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE
- Typ urządu KSNODE: zestaw głośnomówiący z funkcją redukcji echa
- KSNODETYPE_PHONE_LINE
- KSNODETYPE_TELEPHONE
- KSNODETYPE_DOWN_LINE_PHONE
- Punkty końcowe specyficzne dla dźwięku komórkowego, które istnieją w scenariuszach mobilnych
Drugi wyjątek, obecny tylko w systemie Windows 10, uniemożliwia również wybranie oczywistych punktów końcowych zorientowanych na komunikację jako domyślny punkt końcowy konsoli. W przeciwieństwie do pierwszego wyjątku, ten wyjątek bierze pod uwagę również typ magistrali. Powodem jest to, że wiele popularnych słuchawek USB używa następujących KSNodeTypes, mimo że urządzenia nie są specyficzne dla komunikacji. Algorytm klasyfikacji systemu Windows 7 obniżył te typy KSNodeTypes dla domyślnego punktu końcowego konsoli dla wszystkich typów magistrali. W systemie Windows 10 te typy KSNodeType są obniżane tylko dla typów magistrali innych niż usb.
- KSNODETYPE_PERSONAL_MICROPHONE
- KSNODETYPE_COMMUNICATION_SPEAKER
- KSNODETYPE_HEADSET
W przypadku trzeciego wyjątku preferencja jest jawnie wprowadzana dla "osobistych" punktów końcowych — takich jak słuchawki i zestawy słuchawkowe — które są fizycznie dołączone do systemu za pomocą przewodu. Niektóre przykłady to przewodowe słuchawki USB i przewodowe słuchawki 3,5 mm. W przeciwieństwie do poprzednich 2 wyjątków ten wyjątek uaktualnia te punkty końcowe, aby były preferowane dla domyślnego punktu końcowego konsoli. Ten wyjątek jest nowy dla systemu Windows 10 i ma na celu poprawę prywatności użytkownika, preferując punkty końcowe, które tylko użytkownik może usłyszeć, w przeciwieństwie do tych, które są słyszalne dla innych.
Ustawienia heurystyczne skrzynki odbiorczej dla domyślnego punktu końcowego komunikacji audio
W tej sekcji opisano domyślne ustawienia heurystyczne każdego czynnika dla punktu końcowego audio komunikacji. Czynniki są wymienione w kolejności priorytetów; oznacza to, że system Windows 10 daje najwyższy priorytet pierwszemu czynnikowi na poniższej liście podczas obliczania domyślnego punktu końcowego komunikacji. Jedyną różnicą między heurystykami domyślnych punktów końcowych konsoli oraz domyślnymi punktami końcowymi komunikacji są ustawienia formatu i reguła wyjątku.
Możliwość wykrywania jacka
Ustawienia heurystyczne zdolności wykrywania gniazda są takie same dla domyślnych punktów końcowych audio komunikacji i domyślnych punktów końcowych audio konsoli.
Faktor
Tworzone są różne listy priorytetów dla domyślnych urządzeń komunikacyjnych do renderowania i domyślnych urządzeń komunikacyjnych do przechwytywania.
Priorytet formatu dla domyślnych punktów końcowych przechwytywania komunikacji w kolejności od najwyższego priorytetu do najniższego jest następujący:
- Zestaw słuchawkowy
- Słuchawka
- Mikrofon
- Poziom linii
Priorytet formatu dla domyślnych punktów końcowych renderowania komunikacji w kolejności priorytetów (od najwyższego do najniższego) jest następujący:
- Zestaw słuchawkowy
- Słuchawka
- Słuchawki
- Głośniki
- Poziom linii
- DigitalAudioDisplayDevice (HDMI lub DisplayPort)
- S/PDIF
- Wszystkie inne elementy (traktowane z tym samym najniższym priorytetem, czyli z nRankFormFactor równe zero)
KSNodeType
Ustawienia heurystyczne KsNodeType są takie same dla domyślnych punktów końcowych audio do komunikacji i domyślnych punktów końcowych audio konsoli.
Typ autobusu
Ustawienia heurystyczne typu magistrali są takie same zarówno dla domyślnych punktów końcowych dźwięku komunikacji, jak i domyślnych punktów końcowych dźwięku konsoli.
Lokalizacja ogólna
System Windows 10 klasyfikuje wartości wyliczenia dla lokalizacji ogólnej w następującej kolejności priorytetu, od najwyższego do najniższego priorytetu:
- Oddzielać
- PrimaryBox
- Wewnętrzny
- Inne (traktowane z tym samym najniższym priorytetem, czyli nRankGenLoc jest równe zero)
Sterowniki audio raportują ogólne informacje o lokalizacji swoich punktów końcowych za pośrednictwem właściwości KSPROPERTY_JACK_DESCRIPTION. Aby uzyskać więcej informacji, zobacz Właściwość Jack Description.
Lokalizacja geometryczna
System Windows 10 klasyfikuje wartości wyliczenia dla lokalizacji geometrycznej w następującej kolejności priorytetu, od najwyższego do najniższego priorytetu:
- Front i InsideMobileLid
- Inne (traktowane z tym samym najniższym priorytetem, czyli z nRankGeoLoc równym zero)
Sterowniki audio zgłaszają informacje o lokalizacji geometrycznej punktów końcowych za pośrednictwem właściwości KSPROPERTY_JACK_DESCRIPTION. Aby uzyskać więcej informacji, zobacz Właściwość Jack Description.
Wyjątki
Oprócz powyższych czynników heurystycznych system Windows 10 ma również trzy wyjątki zaimplementowane dla domyślnego heurystycznego urządzenia komunikacyjnego, podczas gdy system Windows 7 miał tylko jeden.
Pierwszy wyjątek preferuje oczywiste punkty końcowe zorientowane na komunikację — takie jak słuchawka i telefon głośnikowy — do wybrania jako domyślny punkt końcowy komunikacji. W szczególności podsystem audio uaktualnia wynik WeightedRankValue dla punktów końcowych z parametrem KSNodeType zgodnym z dowolną z następujących wartości:
- 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
- Typ urządu KSNODE: zestaw głośnomówiący z funkcją redukcji echa
Drugi wyjątek unika punktów końcowych, które są oczywistymi punktami końcowymi zorientowanymi na konsolę, które są nieodpowiednie do użycia komunikacji:
- KSNODETYPE_SPEAKERS_STATIC_JACK
- Specjalne punkty końcowe audio, które istnieją tylko w scenariuszach mobilnych, które nie mogą być używane do komunikacji audio
W momencie pisania tego tekstu istnieje trzeci wyjątek, który preferuje punkty końcowe dźwięku komórkowego. Ten wyjątek istnieje tylko w przypadku scenariuszy mobilnych z możliwościami komórkowymi i znajduje się poza zakresem tej dokumentacji. Ponieważ ten typ punktu końcowego będzie istnieć tylko w systemach przenośnych, ten wyjątek można bezpiecznie zignorować.