Dynamische Beleuchtung

In diesem Thema wird beschrieben, wie Ihre Windows-Apps dynamische Beleuchtungseffekte auf verbundenen Geräten bereitstellen können, die den offenen Human Interface Devices (HID)Lighting and Lighting Standard implementieren. Insbesondere die LampArray-Spezifikation für Geräte mit einer oder mehreren Lampen (Leuchten, LEDs, Glühbirnen usw.).

Wichtige APIs

Übersicht

Mit dynamischer Beleuchtung können Sowohl Windows App-Entwickler als auch Endbenutzer Lichteffekte über kompatible Peripheriegeräte und andere verbundene Geräte steuern und synchronisieren. Diese Features können verwendet werden, um zusammenhängende Erfahrungen bereitzustellen, die Benutzer unterhalten, sie produktiver machen und sogar ihre Erfahrungen über Windows barrierefreier gestalten.

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 (Vorschau) und höher.
    • Gilt für UWP- und Win32-Apps im Vordergrund und Hintergrund (Umgebung).
  • Xbox GDK März 2023 Update 1 und höher.

Unterstützte Geräte und Gerätetypen

  • Tastatur oder Tastenfeld
  • Maus
  • Gamecontroller (Gamepad, Flightstick, Lenkrad usw.).
  • Peripheriegeräte (allgemeine Geräte wie Lautsprecher, Mauspads, Mikrofone, Webcams usw.).
  • Szene (Raum-/Bühnen-/Flächengeräte wie Glühbirnen, Spotlights, Strobelichter, Billboards, Kamerablitze usw.).
  • Benachrichtigung (Benutzer-Aufmerksamkeitsgeräte wie Alarme, Sprachassistenten usw.).
  • Chassis (interne PC-Komponenten wie RAM, Motherboard, Lüfter usw.).
  • Wearable (Zubehör wie Headsets, Uhren, Fitness-Tracker, Schuhe usw.).
  • Möbel (z. B. Stühle, Schreibtische, Buchschränke usw.).
  • Kunst (z. B. eine Malerei oder Skulptur).
  • Headset (Speziell für den Kopf entworfenes Zubehör, z. B. Kopfhörer oder Mikrofone).

Eine Windows-App kann HID-LampArray-Geräte steuern, wenn sich die App im Vordergrund befindet (beginnend mit Windows 10) und wenn sie sich im Hintergrund befindet (auch bekannt als ambiente Beleuchtung, beginnend mit Windows 11).

Gerätepriorisierung

Windows priorisiert dynamische Beleuchtung basierend auf dem App-Zustand. Standardmäßig wird einer Vordergrund-App immer die Steuerung eines LampArray-Geräts zugewiesen, es sei denn, der Benutzer hat in den Einstellungen anderweitig angegeben. Wenn zwei oder mehr im Hintergrund ausgeführte Ambient-Apps versuchen, ein LampArray-Gerät zu steuern, weist das System die Steuerung der in den Einstellungen priorisierten App zu.

Hintergrundbeleuchtung (Umgebung)

Die "Ambient"-APIs in Windows. Devices.Lights ermöglichen Hintergrundanwendungen die Steuerung von LampArray-Geräten, während der Benutzer mit einer nicht verbundenen App im Vordergrund interagiert (z. B. Musik-Apps, die synchronisierte Beleuchtungseffekte steuern).

Apps können LampArray.AvailabilityChanged-Ereignisse je nach Benutzereinstellungen empfangen. In Verbindung mit der DeviceWatcher-Klasse können Apps alle verbundenen/getrennten LampArray-Geräte nachverfolgen und verwalten und sehen, welche Steuerung der App vom Benutzer erwartet wird. Ein Anwendungsbeispiel ist eine Benutzeroberfläche, die für jedes verbundene Gerät ein Symbol anzeigt, nicht verfügbare Geräte ausgegraut darstellt und auf die Seite mit den Einstellungen für dynamische Beleuchtung verlinkt, auf der der Benutzer Änderungen an den App-Einstellungen für Vordergrund und Hintergrund vornehmen kann.

Benutzereinstellungen

Screenshot des Bildschirms

Benutzer können ihre LampArray-Geräteerfahrung (sowohl Vordergrund als auch Hintergrund) über die Einstellungen -> Personalisierung -> Dynamische Beleuchtungsbildschirm anpassen.

  1. Wenn eine Verbindung hergestellt wird, werden kompatible Geräte auf den Gerätekarten am oberen Rand der Seite angezeigt, auf der Benutzer einzelne Geräteeinstellungen ändern können.

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

    1. Mit der Umschaltfläche "Dynamische Beleuchtung auf meinen 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 enthält einen integrierten Satz von Basiseffekten.
    2. Die kompatiblen Apps im Vordergrund steuern immer die Beleuchtung, sodass Benutzer das standardmäßige Verhalten der Dynamischen Beleuchtungs-App aktivieren oder deaktivieren können. Wenn diese Funktion deaktiviert ist, kann eine Hintergrund-App ihre verknüpften Geräte auch dann steuern, wenn eine aktive Vordergrund-App die Steuerung übernehmen möchte.
    3. Im Abschnitt " Hintergrundlichtsteuerung " können Benutzer installierte Apps priorisieren, die sich als Umgebungshintergrundcontroller registriert haben. Wenn Sie eine App an den Anfang der Liste ziehen, wird sie priorisiert und kann Geräte vor anderen Apps in der Liste steuern. Umgebungshintergrundeinstellungen sind an ein Gerät gebunden und der Port, auf dem es angeschlossen ist. Wenn Sie das LampArray trennen und dann an einen anderen (USB)-Anschluss anschließen, wird es als anderes Gerät angezeigt.
    4. Mit dem Schieberegler " Helligkeit " können Benutzer die LED-Helligkeit auf ihren Geräten festlegen.
    5. Mit der Dropdownliste "Effekte " können Benutzer Farben und Effekte für ihre Geräte auswählen.

    Screenshot des Effektbildschirms der Einstellungen für die dynamische Beleuchtung.

Note

Wenn ein Gerät nicht für die Hintergrundlichtsteuerung ausgewählt ist, wird es im "Autonomen Modus" ausgeführt.

Dies wird in der HID-Spezifikation als Modus definiert, in dem die Hardware wie durch die Firmware definiert auf das Standardverhalten zurückfällt. Beispielsweise kann ein Gerät einen vorprogrammierten visuellen Effekt haben, der die Standardeinstellung 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 vom autonomen Modus zurückzukehren, um eine reibungslose Interaktion mit den Erwartungen der Benutzer sicherzustellen.

Verpacken und App-Identität

Ambient-Hintergrundanwendungen müssen die AppExtension "com.microsoft.windows.lighting" im App-Manifest deklarieren (ausführlichere Informationen dazu finden Sie unter Erstellen und Hosten einer App-Erweiterung). Diese Anforderung wird durch den AmbientLightingServer durchgesetzt, der nur Verbindungen von einem AmbientLightingClient akzeptiert, der in einem Prozess mit Paketidentität (gepackte App) ausgeführt wird und die Erweiterung unterstützt. Diese Anforderung ist erforderlich, damit der Benutzer die Richtlinie für installierte Apps definieren und diese Richtlinie zur Laufzeit korrelieren kann.

Die App-Identität ist für Umgebungsanwendungen erforderlich, sodass Benutzereinstellungen zur Laufzeit bestimmt werden können. Sobald eine Anwendung installiert ist, muss das System bei Verwendung der Umgebungs-APIs die ausgeführte Instanz einer App 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, der angibt, dass Ihre App ein legitimer Benutzer der Umgebungsbeleuchtungs-APIs ist.

Diese Identitätsanforderung wird über MSIX Packaging (eine Microsoft Bereitstellungs- und Verpackungstechnologie, die früher als APPX bezeichnet wird) erreicht.

Wenn Sie bereits MSIX-Verpackungen für Verpackung und Installation verwenden, gibt es keine weiteren Anforderungen.

Wenn Sie über eine entpackte App verfügen, sind zusätzliche Schritte erforderlich, um die Anwendungsidentität abzurufen. Sie können Ihre Installation entweder auf eine vollständige MSIX-Paketierung migrieren oder die vereinfachte Funktion „Sparse Packaging und externer Speicherort“ von MSIX verwenden. Sparse Packaging mit externem Speicherort wurde entwickelt, damit vorhandene App-Installationen von der App-Identität profitieren können, ohne dass eine vollständige Konvertierung des Setups bzw. der Installation in MSIX erforderlich ist. Es handelt sich um einen neuen Schritt in Ihrem Setup/Ihrer Installation, der Tools zum Erstellen eines MSIX-Pakets verwendet, um die app darzustellen, 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 Installation installieren Sie das MSIX-Paket mithilfe einer Paket-Manager-API, die den Speicherort Der installierten ausführbaren Datei angibt. Aus Gründen der Einfachheit schließt das Add-appxpackage-PowerShell-Skript auch dieses API-Verhalten ein. Alternativ kann AddPackageByUriAsync während der Installation verwendet werden, um das MSIX-Paket zu installieren.

Bei entpackten App-Installationen gibt es auch eine parallele Anwendungsmanifestanforderung für Ihre ausführbare Datei.

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

Beispiele

LampArray-Beispiel

Veranschaulicht, wie die RGB-Beleuchtung von Peripheriegeräten mithilfe der Windows gesteuert wird. Devices.Lights und Windows. Devices.Lights.Effects APIs.

AutoRGB-Beispiel

Veranschaulicht, wie eine einzelne repräsentative Farbe von einem Desktopbildschirm extrahiert und verwendet wird, um LED-Lampen auf einem angeschlossenen RGB-Gerät zu beleuchten.

Siehe auch