Dynamische Beleuchtung
In diesem Thema wird beschrieben, wie Ihre Windows-Apps dynamische Beleuchtungseffekte auf verbundenen Geräten bereitstellen können, die den open Human Interface Devices (HID)-Beleuchtungs- und Beleuchtungsstandard 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 dynamischer Beleuchtung können Windows-App-Entwickler und 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 in 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 (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.
- Weitere Informationen finden Sie in der API „Lighting“ im Game Development Kit (GDK).
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).
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 LampArray-Geräteumgebung (sowohl Vordergrund als auch Hintergrund) auf dem Bildschirm über Einstellungen –> Personalisierung –> dynamische Beleuchtung anpassen.
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.
Globale dynamische Beleuchtungseinstellungen befinden sich unter den Gerätekarten (Änderungen an diesen Einstellungen wirken sich auf alle verbundenen Geräte aus).
- 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.
- 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.
- 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.
- Mit dem Schieberegler Helligkeit können Benutzer die LED-Helligkeit auf ihren Geräten festlegen.
- Im Dropdownmenü Effekte können Benutzer Farben und Effekte für ihre Geräte auswählen.
Hinweis
Wenn für ein Gerät die Steuerung der Hintergrundbeleuchtung nicht ausgewählt ist, arbeitet das Gerät im „Autonomen Modus“.
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 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.
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 mithilfe der MSIX-Paketerstellung erfüllt (eine Bereitstellungs- und Paketerstellungstechnologie von Microsoft, früher als APPX bezeichnet).
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.
Beispiele
Veranschaulicht die Steuerung der RGB-Beleuchtung von Peripheriegeräten mithilfe der Windows.Devices.Lights- und Windows.Devices.Lights.Effects-APIs.
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.