Dynamische Beleuchtung

In diesem Thema wird beschrieben, wie Ihre Windows-Apps dynamische Lichteffekte für verbundene Geräte bereitstellen können, die den offenen HID-Standard (Human Interface Devices)für Licht und Beleuchtung implementieren. Insbesondere die LampArray-Spezifikation für Geräte, die über eine oder mehrere Lampen verfügen (Leuchten, LEDs, Lampen usw.).

Wichtige APIs

Übersicht

Mit der Unterstützung dynamischer Beleuchtung unter Windows können Sowohl App-Entwickler als auch Endbenutzer Lichteffekte über Peripheriegeräte und andere verbundene Geräte steuern und synchronisieren.

Unterstützte App-Typen und Plattformen

  • Win10 Version 1809 (Oktober 2018) und höher.
    • Gilt für UWP- und Win32-Apps im Vordergrund.
  • Windows 11 Build 23466 (Vorschauversion) und höher.
    • Gilt für UWP- und Win32-Apps im Vordergrund und Hintergrund (Umgebung).
  • Xbox GDK Update 1 und höher von März 2023.

Unterstützte Geräte und Gerätetypen

  • Tastatur oder Ziffernblock
  • Maus
  • Spielcontroller (Gamepad, Flightstick, Lenkrad usw.).
  • Peripheriegeräte (allgemeine Geräte wie Lautsprecher, Mauspads, Mikrofone, Webcams usw.).
  • Szene (Raum-/Bühnen-/Bereichsgeräte wie Glühbirnen, Scheinwerfer, Stroboskoplichter, Werbetafeln, Kamerablitze usw.).
  • Benachrichtigung (Geräte, die Benutzer aufmerksam machen, wie z. B. Alarme, Sprachassistenten usw.).
  • Gehäuse (interne PC-Komponenten wie RAM, Hauptplatine, Lüfter usw.).
  • Wearable (Zubehör wie Headsets, Uhren, Fitnesstracker, Schuhe usw.).
  • Möbel (wie Stühle, Schreibtische, Bücherregale usw.).
  • Kunst (z. B. ein Gemälde oder eine Skulptur).
  • Headset (speziell für den Kopf entwickeltes Zubehör wie Kopfhörer oder Mikrofone).

Eine Windows-App kann HID-LampArray-Geräte steuern, wenn sich die App im Vordergrund (ab Windows 10) und im Hintergrund befindet (ab Windows 11 auch als Umgebungsbeleuchtung bezeichnet).

Benutzer*innen können ihre LampArray-Geräteerfahrung (sowohl im Vordergrund als auch im Hintergrund) über den Bildschirm Einstellungen –> Personalisierung –> Dynamische Beleuchtung anpassen, damit sie Geräte verschiedener Hersteller synchronisieren, Helligkeit und Effekte für ausgewählte Geräte und Formfaktoren steuern und den Zugriff auf Geräte durch Umgebungshintergrund-Apps priorisieren. Diese Features ermöglichen es Ihren Apps, Benutzer*innen zu unterhalten, sie produktiver zu machen, ihre Erfahrungen in Windows barrierefreier zu machen und einheitliche Erfahrungen über die verschiedenen mit dynamischer Beleuchtung kompatiblen Geräte hinweg bereitzustellen.

Screenshot of the Dynamic Lighting settings screen.

Gerätepriorisierung

Windows priorisiert dynamische Beleuchtung basierend auf dem App-Status. Standardmäßig wird einer Vordergrund-App immer die Steuerung eines LampArray-Geräts zugewiesen, es sei denn, der Benutzer hat in den Einstellungen etwas anderes angegeben. In Fällen, in denen mindestens zwei Umgebungshintergrund-Apps versuchen, ein LampArray-Gerät zu steuern, weist das System der App die Steuerung zu, die in den Einstellungen priorisiert ist.

Hintergrundbeleuchtung (Umgebungsbeleuchtung)

Die „ambient“-APIs in Windows.Devices.Lights ermöglichen es Hintergrundanwendungen, LampArray-Geräte zu steuern, während der Benutzer mit einer nicht verwandten App im Vordergrund interagiert (z. B. Musik-Apps, die synchronisierte Lichteffekte steuern).

Apps können je nach Benutzereinstellungen LampArray.AvailabilityChanged-Ereignisse empfangen. In Verbindung mit der DeviceWatcher-Klasse können Apps alle verbundenen/getrennten LampArray-Geräte nachverfolgen und verwalten sowie feststellen, von welchen der Benutzer erwartet, dass sie von der App gesteuert werden. Ein Beispiel für die Nutzung ist eine Benutzeroberfläche, die ein Symbol für jedes verbundene Gerät rendert, nicht verfügbare Geräte ausgraut und die Einstellungsseite für dynamische Beleuchtung verlinkt, auf der der Benutzer Änderungen an den Einstellungen der Vordergrund-/Hintergrund-App vornehmen kann.

Benutzereinstellungen

Benutzer können ihre HID-LampArray-Geräte sowohl auf individueller als auch auf globaler Ebene unter Einstellungen –> Personalisierung –> Dynamische Beleuchtung auf der Seite „Dynamische Beleuchtung“ steuern und konfigurieren. Diese Seite wird in den Einstellungen angezeigt, wenn mindestens ein kompatibles Gerät mit dem PC verbunden ist.

Screenshot of the Dynamic Lighting settings screen.

  1. Wenn sie verbunden sind, werden kompatible Geräte oben auf der Seite in den Gerätekarten angezeigt, auf denen Benutzer einzelne Geräteeinstellungen ändern können.

  2. Globale dynamische Beleuchtungseinstellungen befinden sich unter den Gerätekarten (Änderungen an diesen Einstellungen wirken sich auf alle verbundenen Geräte aus).

    1. Mit dem Umschalter Dynamische Beleuchtung für meine Geräten verwenden können Benutzer dynamische Beleuchtung aktivieren oder deaktivieren. Wenn die dynamische Beleuchtung deaktiviert ist, sollten Geräte mit ihrem standardmäßigen nicht dynamischen Beleuchtungsverhalten funktionieren. Dynamische Beleuchtung umfasst einen integrierten Satz grundlegender Effekte.
    2. Mit Kompatible Apps im Vordergrund steuern immer die Beleuchtung können Benutzer das standardmäßige Verhalten der App „Dynamische Beleuchtung“ aktivieren oder deaktivieren. Wenn diese Funktion deaktiviert ist, kann eine Hintergrund-App die zugehörigen Geräte steuern, auch wenn eine Vordergrund-App aktiv ist, die die Steuerung wünscht.
    3. Im Abschnitt Hintergrundlichtsteuerung können Benutzer installierte Apps priorisieren, die sich als Hintergrundcontroller für Umgebungsumgebung registriert haben. Wenn Sie eine App an den Anfang der Liste ziehen, priorisieren Sie sie und stellen sicher, dass sie Geräte über andere Apps in der Liste steuern kann. Umgebungshintergrundeinstellungen sind an ein Gerät und den Port gebunden, an dem es verbunden ist. Wenn Sie das LampArray trennen und dann an einen anderen Port (USB) anschließen, wird es als ein anderes Gerät angezeigt.
    4. Mit dem Schieberegler Helligkeit können Benutzer die LED-Helligkeit auf ihren Geräten festlegen.
    5. Im Dropdownmenü Effekte können Benutzer Farben und Effekte für ihre Geräte auswählen.

    Screenshot of the Dynamic Lighting settings Effects screen.

Hinweis

Wenn ein Gerät nicht für die Hintergrundbeleuchtungssteuerung ausgewählt ist, wird es im „autonomen Modus“ ausgeführt, was bedeutet, dass das Gerät auf das standardmäßige Firmwareverhalten zurückgesetzt wird.

Verpackung und App-Identität

Umgebungshintergrundanwendungen müssen die App-Erweiterung „com.microsoft.windows.lighting“ im App-Manifest deklarieren (ausführlichere Informationen dazu finden Sie unter Erstellen und Hosten einer App-Erweiterung). Diese Anforderung wird vom AmbientLightingServer erzwungen, der nur Verbindungen von einem AmbientLightingClient in einem Prozess akzeptiert, bei dem die Paketidentität (gepackte App) die Erweiterung unterstützt. Diese Anforderung ist erforderlich, damit der Benutzer die Richtlinie für installierte Apps definieren und diese Richtlinie dann zur Laufzeit korrelieren kann.

Die App-Identität ist für Umgebungsanwendungen erforderlich, damit Benutzereinstellungen zur Laufzeit bestimmt werden können. Sobald eine Anwendung installiert ist, muss das System, wenn sie die Umgebungs-APIs verwendet, die laufende Instanz einer Anwendung mit den Einstellungen des Benutzers korrelieren. Darüber hinaus erfordert die Bereitstellung Ihrer App für den Benutzer in den Einstellungen ein Artefakt nach der Installation, das dem System anzeigt, dass Ihre App ein legitimer Benutzer der Umgebungsbeleuchtungs-APIs ist.

Diese Identitätsanforderung wird über die MSIX-Verpackung erfüllt.

Wenn Sie bereits die MSIX-Verpackung zum Verpacken und Installieren verwenden, gibt es keine weiteren Anforderungen.

Wenn Sie über eine nicht verpackte App verfügen, sind zusätzliche Schritte erforderlich, um die Anwendungsidentität zu erhalten. Sie können Ihre Installation entweder vollständig auf das MSIX-System umstellen oder die vereinfachte Funktion für geringe Verpackung und externe Speicherorte von MSIX verwenden. Funktion für geringe Verpackung mit externem Speicherort wurde entwickelt, um vorhandenen App-Installationen die Vorteile der App-Identität zu ermöglichen, ohne dass eine vollständige Konvertierung der Einrichtung/Installation in MSIX erforderlich ist. Dies ist ein neuer Schritt in Ihrer Einrichtung/Installation, der Tools verwendet, um ein MSIX-Paket zu erstellen, das die App darstellt, die Sie installieren.

Sie müssen ein AppXManifest.xml-Paketmanifest definieren, das Ihre Installation beschreibt. Das MSIX-Paket wird mit dem MakeAppXPackage-Tool erstellt. Zur Installationszeit installieren Sie das MSIX-Paket mithilfe einer Paketmanager-API, die den Speicherort Ihrer installierten ausführbaren Datei angibt. Der Einfachheit halber umschließt das PowerShell-Skript „add-appxpackage“ auch dieses API-Verhalten. Alternativ kann AddPackageByUriAsync zur Installationszeit verwendet werden, um das MSIX-Paket zu installieren.

Für nicht verpackte App-Installationen ist auch die Anforderung eines parallelen Anwendungsmanifests für Ihre ausführbare Datei erforderlich.

Eine ausführlichere Erläuterung zu verpackten und unverpackten Apps finden Sie in der Übersicht über die Bereitstellung.

Glossar

Die folgenden Begriffe und Konzepte werden verwendet, um verschiedene Komponenten des Umgebungsbeleuchtungssystems zu beschreiben.

  • Autonomer Modus

    Wird in der HID-Spezifikation als Modus definiert, in dem die Hardware auf das Standardverhalten zurückgesetzt wird, das durch die Firmware definiert wird. Beispielsweise kann ein Gerät einen vorprogrammierten visuellen Effekt aufweisen, der Standard ist, wenn das Betriebssystem das Gerät nicht aktiv steuert oder wenn der Benutzer die Betriebssystembeteiligung für das Gerät deaktiviert hat. Das Gerät muss auf den HID-Befehl reagieren, um aus dem autonomen Modus zurückzukehren, um eine reibungslose Interaktion mit den Erwartungen des Benutzers zu gewährleisten.

  • Umgebungs-Apps

    Consumer der Windows.Devices.Lights-API, die auch über eine Paketidentität verfügen und die erforderliche App-Erweiterung unterstützen. Umgebungs-Apps erhalten Benachrichtigungen vom AmbientLightingClient. Die Ereignisse informieren die App über Geräte, auf die sie Zugriff haben. Auf diese Weise kann eine App die Benutzeroberfläche anzeigen, die die verbundenen Beleuchtungsgeräte aufzählt, und die Geräte, auf die derzeit aufgrund von Benutzerrichtlinieneinstellungen nicht zugegriffen werden kann, ausgrauen. Umgebungs-Apps verwenden die Windows.Devices.Lights-APIs, um Effekte auf verfügbaren Geräten zu steuern.

  • Applet „Einstellungen“

    Speichert benutzerspezifische Einstellungen pro Gerät im Schlüssel HKEY_CURRENT_USER (HKCU) der Registrierung. Der Benutzer kann für jedes Gerät eine Reihe von Umgebungs-Apps festlegen, die für das jeweilige Gerät Priorität haben. Der Benutzer kann die dynamische Beleuchtung auch deaktivieren.

  • App-Identität

    Ein App-Modellkonzept. Eine App mit einer App-Identität kann vom System zur Laufzeit identifiziert werden.

  • MSIX

    Eine Microsoft-Bereitstellungs- und Verpackungstechnologie, die früher als APPX bezeichnet wurde.

Beispiele

LampArray-Beispiel

Veranschaulicht die Steuerung der RGB-Beleuchtung von Peripheriegeräten mithilfe der Windows.Devices.Lights- und Windows.Devices.Lights.Effects-APIs.

AutoRGB-Beispiel

Veranschaulicht, wie eine einzelne, repräsentative Farbe von einem Desktopbildschirm extrahiert und zur Aktivierung von LED-Lampen auf einem verbundenen RGB-Gerät verwendet wird.

Siehe auch