Oświetlenie dynamiczne

W tym temacie opisano, jak aplikacje Windows mogą obsługiwać dynamiczne efekty oświetlenia na podłączonych urządzeniach obsługujących otwarty standard Human Interface Devices (HID)Lighting and Illumination. W szczególności specyfikacja LampArray dla urządzeń, które mają co najmniej jedną lampę (światła, diody LED, żarówki itd.).

Note

Klasa Lamp nie ma zastosowania do funkcji HID LampArray i nie ma znaczenia w tym temacie.

Przegląd

Oświetlenie dynamiczne umożliwia zarówno deweloperom aplikacji Windows, jak i użytkownikom końcowym kontrolowanie i synchronizowanie efektów oświetlenia między zgodnymi urządzeniami peryferyjnymi i innymi połączonymi urządzeniami. Te funkcje mogą służyć do zapewniania spójnego środowiska użytkownika, które dostarcza użytkownikom rozrywki, zwiększa ich produktywność, a nawet poprawia dostępność środowiska systemu Windows.

Obsługiwane typy aplikacji i platformy

  • Win10 w wersji 1809 (październik 2018) i nowszej.
    • Dotyczy aplikacji UWP i Win32 działających na pierwszym planie.
  • Windows 11 Kompilacja 23466 (wersja zapoznawcza) i nowsze.
    • Dotyczy aplikacji UWP i Win32 działających na pierwszym planie i w tle (ambient).
  • Xbox GDK March 2023 Update 1 i nowsze.

Obsługiwane urządzenia i typy urządzeń

  • Klawiatura lub klawiatura numeryczna
  • mysz
  • Kontroler gry (gamepad, flightstick, kierownica itd.).
  • Urządzenia peryferyjne (urządzenia ogólne, takie jak głośniki, podkładki myszy, mikrofony, kamery internetowe itd.).
  • Scena (urządzenia w pomieszczeniu/na scenie/w obszarze, takie jak żarówki, reflektory, światła stroboskopowe, billboardy, lampy błyskowe aparatów itd.).
  • Powiadomienie (urządzenia przyciągające uwagę użytkownika, takie jak alarmy, asystenci głosowi i tak dalej).
  • Obudowa (wewnętrzne składniki komputera, takie jak PAMIĘĆ RAM, płyta główna, wentylator itd.).
  • Urządzenia do noszenia (akcesoria, takie jak zestawy słuchawkowe, zegarki, opaski fitness, buty itd.).
  • Meble (takie jak krzesła, biurka, książki itp.).
  • Sztuka (taka jak obraz lub rzeźba).
  • Zestaw słuchawkowy (akcesoria przeznaczone specjalnie dla głowy, takie jak słuchawki lub mikrofony).

Aplikacja systemu Windows może sterować urządzeniami HID LampArray, gdy działa na pierwszym planie (począwszy od systemu Windows 10) i gdy działa w tle (znane również jako oświetlenie otoczenia, począwszy od systemu Windows 11).

Priorytetyzacja urządzenia

Windows określa priorytety oświetlenia dynamicznego na podstawie stanu aplikacji. Domyślnie aplikacji działającej na pierwszym planie jest zawsze przyznawane sterowanie urządzeniem LampArray, chyba że użytkownik ustawił inaczej w Ustawieniach. W przypadkach, gdy co najmniej dwie aplikacje w tle otoczenia próbują kontrolować urządzenie LampArray, system przypisze kontrolę do aplikacji priorytetowej w ustawieniach.

Oświetlenie tła (otoczenia)

Interfejsy API "otoczenia" w Windows. Devices.Lights umożliwiają aplikacjom w tle sterowanie urządzeniami LampArray, gdy użytkownik wchodzi w interakcję z niepowiązaną aplikacją na pierwszym planie (np. aplikacjami muzycznymi, które napędzają zsynchronizowane efekty oświetlenia).

Aplikacje mogą odbierać zdarzenia LampArray.AvailabilityChanged w zależności od ustawień użytkownika. W połączeniu z klasą DeviceWatcher aplikacje mogą śledzić wszystkie podłączone i odłączone urządzenia LampArray oraz zarządzać nimi, a także sprawdzać, którymi z nich użytkownik oczekuje, że aplikacja będzie sterować. Przykładem zastosowania jest interfejs użytkownika, który wyświetla ikonę dla każdego połączonego urządzenia, przy czym niedostępne urządzenia są wyszarzone, oraz zawiera łącze do strony ustawień Oświetlenie dynamiczne, na której użytkownik może zmieniać preferencje aplikacji działających na pierwszym planie i w tle.

Ustawienia użytkownika

Zrzut ekranu przedstawiający ekran Ustawienia oświetlenia dynamicznego.

Użytkownicy mogą dostosować swoje środowisko urządzenia LampArray (zarówno na pierwszym planie, jak i w tle) za pomocą ekranu Ustawienia —> Personalizacja —> Dynamiczne oświetlenie .

  1. Po nawiązaniu połączenia zgodne urządzenia będą wyświetlane na kartach urządzeń w górnej części strony, w której użytkownicy mogą zmieniać poszczególne ustawienia urządzenia.

  2. Globalne ustawienia dynamicznego oświetlenia znajdują się poniżej kart urządzeń (zmiany tych ustawień mają wpływ na wszystkie połączone urządzenia).

    1. Przełącznik Użyj oświetlenia dynamicznego na urządzeniach umożliwia użytkownikom włączanie lub wyłączanie dynamicznego oświetlenia. Gdy oświetlenie dynamiczne jest wyłączone, urządzenia powinny działać z domyślnym zachowaniem oświetlenia niedynamicznego. Oświetlenie dynamiczne zawiera wbudowany zestaw podstawowych efektów.
    2. Zgodne aplikacje na pierwszym planie zawsze sterują oświetleniem, dzięki czemu użytkownicy mogą włączać lub wyłączać domyślne zachowanie aplikacji dynamicznego oświetlenia. Po wyłączeniu tej funkcji aplikacja w tle może kontrolować skojarzone urządzenia nawet wtedy, gdy aplikacja pierwszego planu, która chce kontrolować, jest aktywna.
    3. Sekcja Kontrolka światła w tle umożliwia użytkownikom określanie priorytetów zainstalowanych aplikacji, które zostały zarejestrowane jako kontrolery tła otoczenia. Przeciągnięcie aplikacji na górę listy spowoduje nadanie jej priorytetu i upewnienie się, że może kontrolować urządzenia nad innymi aplikacjami na liście. Ustawienia tła otoczenia są powiązane z urządzeniem i podłączonym portem. Jeśli odłączysz urządzenie, a następnie podłącz urządzenie LampArray do innego portu (USB), będzie ono wyświetlane jako inne urządzenie.
    4. Suwak Jasność pozwala użytkownikom ustawić jasność diody LED na swoich urządzeniach.
    5. Lista rozwijana Efekty umożliwia użytkownikom wybieranie kolorów i efektów dla swoich urządzeń.

    Zrzut ekranu przedstawiający ekran Efekty ustawień oświetlenia dynamicznego.

Note

Jeśli urządzenie nie jest wybrane do sterowania podświetleniem, działa w „trybie autonomicznym”.

Jest to zdefiniowane w specyfikacji HID jako tryb, w którym sprzęt powraca do domyślnego zachowania zdefiniowanego przez jego oprogramowanie układowe. Na przykład urządzenie może mieć wstępnie zaprogramowany efekt wizualny, który jest domyślny, gdy system operacyjny nie kontroluje aktywnie urządzenia lub jeśli użytkownik zrezygnował z udziału systemu operacyjnego w urządzeniu. Urządzenie musi odpowiedzieć na polecenie HID, aby powrócić z trybu autonomicznego, aby zapewnić płynną interakcję z oczekiwaniami użytkownika.

Tworzenie pakietów i tożsamość aplikacji

Aplikacje w tle otoczenia muszą zadeklarować "com.microsoft.windows.lighting" AppExtension w manifeście aplikacji (aby uzyskać więcej informacji na temat tego, jak to zrobić, zobacz Tworzenie i hostowanie rozszerzenia aplikacji). To wymaganie jest egzekwowane przez AmbientLightingServer, który akceptuje tylko połączenia od klienta AmbientLightingClient w procesie z tożsamością pakietu (spakietowanej aplikacji) obsługującym rozszerzenie. To wymaganie jest niezbędne, aby umożliwić użytkownikowi zdefiniowanie zasad dla zainstalowanych aplikacji, a następnie skorelowanie tych zasad w czasie wykonywania.

Tożsamość aplikacji jest wymagana w przypadku aplikacji ambientowych, aby można było określić preferencje użytkownika w czasie wykonywania. Po zainstalowaniu aplikacji, jeśli korzysta ona z interfejsów API środowiskowych, system musi powiązać działające wystąpienie aplikacji z preferencjami użytkownika. Ponadto udostępnienie użytkownikowi aplikacji w Ustawieniach wymaga artefaktu poinstalacyjnego, który informuje system, że aplikacja jest uprawnionym użytkownikiem interfejsów API oświetlenia otoczenia.

Ten wymóg dotyczący tożsamości jest spełniany dzięki technologii pakowania MSIX (technologii wdrażania i tworzenia pakietów firmy Microsoft, wcześniej znanej jako APPX).

Jeśli już używasz technologii MSIX do pakowania i instalacji, nie ma żadnych dodatkowych wymagań.

Jeśli masz aplikację niespakietowaną, wymagane są dodatkowe kroki, aby uzyskać tożsamość aplikacji. Możesz albo zmigrować instalację do pełnego pakietu MSIX, albo użyć uproszczonej funkcji MSIX Sparse Packaging and External Location. Pakiet rozproszony z lokalizacją zewnętrzną został zaprojektowany tak, aby umożliwić istniejącym instalacjom aplikacji korzystanie z tożsamości aplikacji bez konieczności pełnej konwersji instalatora lub procesu instalacji do formatu MSIX. Jest to nowy krok w konfiguracji/instalacji, w którym używa się narzędzi do utworzenia pakietu MSIX reprezentującego instalowaną aplikację.

Należy zdefiniować manifest pakietuAppXManifest.xml opisujący instalację. Pakiet MSIX jest tworzony za pomocą narzędzia MakeAppXPackage. W czasie instalacji pakiet MSIX jest instalowany przy użyciu interfejsu API Menedżer pakietów, który określa lokalizację zainstalowanego pliku wykonywalnego. Dla wygody skrypt programu PowerShell add-appxpackage opakowuje również to zachowanie interfejsu API. Alternatywnie można użyć polecenia AddPackageByUriAsync podczas instalacji w celu zainstalowania pakietu MSIX.

W przypadku instalacji aplikacji niepakietowych istnieje również wymóg dotyczący manifestu aplikacji side-by-side dla Twojego pliku wykonywalnego.

Zobacz Omówienie wdrażania , aby uzyskać bardziej szczegółowe wyjaśnienie spakowanych i rozpakowanych aplikacji.

Examples

Przykład LampArray

Pokazuje, jak kontrolować oświetlenie RGB urządzeń peryferyjnych przy użyciu Windows. Devices.Lights i Windows. Devices.Lights.Effects interfejsy API.

Przykład AutoRGB

Pokazuje, jak wyodrębnić jeden, reprezentatywny kolor z ekranu stacjonarnego i używać go do oświetlenia lamp LED na podłączonym urządzeniu RGB.

Zobacz też