Éclairage dynamique

Cette rubrique explique comment vos applications Windows peuvent fournir des effets d’éclairage dynamiques sur les appareils connectés qui implémentent la norme open Human Interface Devices (HID)Lighting and Illumination standard. En particulier, la spécification LampArray pour les appareils qui ont une ou plusieurs lampes (lumières, LED, ampoules, etc.).

API importantes

Overview

L’éclairage dynamique permet aux développeurs Windows d’applications et aux utilisateurs finaux de contrôler et de synchroniser les effets d’éclairage sur les périphériques compatibles et les autres appareils connectés. Ces fonctionnalités peuvent être utilisées pour offrir des expériences cohérentes qui amusent les utilisateurs, les rendent plus productives et rendent même leurs expériences dans Windows plus accessible.

Types et plateformes d’application pris en charge

  • Win10 version 1809 (octobre 2018) et versions ultérieures.
    • S’applique aux applications UWP et Win32 de premier plan.
  • Windows 11 Build 23466 (préversion) et versions ultérieures.
    • S’applique aux applications UWP et Win32 au premier plan et en arrière-plan (ambiantes).
  • Xbox GDK mars 2023 Update 1 et versions ultérieures.

Appareils et types d’appareils pris en charge

  • Clavier ou pavé numérique
  • Souris
  • Manette de jeu (manette, joystick de vol, volant, etc.).
  • Périphérique (appareils généraux tels que les haut-parleurs, les pavés de souris, les microphones, les webcams, etc.).
  • Scène (salle/scène/appareils de zone, tels que les ampoules, les projecteurs, les lumières strobe, les panneaux d’affichage, les flashes de caméra, etc.).
  • Notification (appareils d’attention utilisateur tels que les alarmes, les assistants vocaux, etc.).
  • Châssis (composants de PC internes tels que la RAM, la carte mère, le ventilateur, etc.).
  • Portable (accessoires tels que casques, montres, suivis de fitness, chaussures, etc.).
  • Meubles (comme les chaises, les bureaux, les bibliothèques, etc.).
  • Art (comme une peinture ou une sculpture).
  • Casque (accessoires conçus spécifiquement pour la tête, tels que les casques ou les microphones).

Une application Windows peut contrôler les appareils HID LampArray lorsque l'application est au premier plan (à partir de Windows 10) et quand elle se trouve en arrière-plan (également appelée éclairage ambiente, à partir de Windows 11).

Hiérarchisation des appareils

Windows hiérarchise l’éclairage dynamique en fonction de l’état de l’application. Par défaut, une application de premier plan est toujours affectée au contrôle d’un appareil LampArray, sauf si l’utilisateur a spécifié autrement dans Paramètres. Dans les cas où deux applications d’arrière-plan ambiantes ou plus tentent de contrôler un appareil LampArray, le système affecte le contrôle à l’application hiérarchisée dans Paramètres.

Éclairage d’ambiance

Les API « ambiantes » dans Windows. Devices.Lights permet aux applications en arrière-plan de contrôler les appareils LampArray pendant que l’utilisateur interagit avec une application non liée au premier plan (par exemple, les applications musicales qui pilotent des effets d’éclairage synchronisés).

Les applications peuvent recevoir des événements LampArray.AvailabilityChanged , en fonction des paramètres utilisateur. Conjointement avec la classe DeviceWatcher , les applications peuvent suivre et gérer tous les appareils LampArray connectés/déconnectés et voir quel utilisateur s’attend à ce que l’application contrôle. Un exemple d’utilisation est une interface utilisateur qui affiche une icône pour chaque appareil connecté, les appareils indisponibles étant grisés, ainsi qu’un lien vers la page des paramètres Éclairage dynamique, où l’utilisateur peut modifier les préférences des applications en premier plan et en arrière-plan.

Paramètres utilisateur

Capture d’écran de l’écran Paramètres d’éclairage dynamique.

Les utilisateurs peuvent personnaliser leur expérience d’appareil LampArray (au premier plan et en arrière-plan) via l’écran Paramètres -> Personnalisation -> Éclairage dynamique .

  1. Lorsqu’ils sont connectés, les appareils compatibles s’affichent dans les cartes d’appareil en haut de la page, où les utilisateurs peuvent modifier les paramètres d’appareil individuels.

  2. Les paramètres d’éclairage dynamique global se trouvent sous les cartes d’appareil (les modifications apportées à ces paramètres affectent tous les appareils connectés).

    1. L’option Utiliser l’éclairage dynamique sur mes appareils permet aux utilisateurs d’activer ou de désactiver l’éclairage dynamique. Lorsque l’éclairage dynamique est désactivé, les appareils doivent fonctionner avec leur comportement d’éclairage non dynamique par défaut. L’éclairage dynamique comprend un ensemble intégré d’effets de base.
    2. Les applications compatibles au premier plan contrôlent toujours l’éclairage permet aux utilisateurs d’activer ou de désactiver le comportement de l’application d’éclairage dynamique par défaut. Lorsque cette fonctionnalité est désactivée, une application en arrière-plan peut contrôler ses appareils associés, même lorsqu’une application de premier plan qui souhaite que le contrôle soit actif.
    3. La section Contrôle de lumière d’arrière-plan permet aux utilisateurs de hiérarchiser les applications installées qui se sont inscrites en tant que contrôleurs d’arrière-plan ambiants. Faire glisser une application en haut de la liste la place en priorité et garantit qu’elle peut contrôler les appareils avant les autres applications de la liste. Les paramètres d’arrière-plan ambiants sont liés à un appareil et au port sur lequel il est connecté. Si vous déconnectez et branchez le LampArray dans un autre port (USB), il apparaît sous la forme d’un autre appareil.
    4. Le curseur Luminosité permet aux utilisateurs de définir la luminosité led sur leurs appareils.
    5. La liste déroulante Effets permet aux utilisateurs de sélectionner des couleurs et des effets pour leurs appareils.

    Capture d’écran de l’écran Effets des paramètres d’éclairage dynamique.

Note

Lorsqu’un appareil n’est pas sélectionné pour le contrôle de lumière d’arrière-plan, il fonctionne en « mode autonome ».

Cela est défini dans la spécification HID comme mode où le matériel revient au comportement par défaut tel que défini par son microprogramme. Par exemple, un appareil peut avoir un effet visuel préprogramme qui est la valeur par défaut lorsque le système d’exploitation ne contrôle pas activement l’appareil ou si l’utilisateur a refusé l’implication du système d’exploitation pour l’appareil. L’appareil doit répondre à la commande HID pour revenir du mode autonome pour garantir une interaction fluide avec les attentes des utilisateurs.

Empaquetage et identité d’application

Les applications d’arrière-plan ambiante doivent déclarer l’appExtension « com.microsoft.windows.lighting » dans le manifeste de l’application (pour plus d’informations sur la procédure à suivre, consultez Créer et héberger une extension d’application). Cette exigence est appliquée par le AmbientLightingServer, qui accepte uniquement les connexions d’un AmbientLightingClient dans un processus avec l’identité de package (application empaquetée) prenant en charge l’extension. Cette exigence est nécessaire pour permettre à l’utilisateur de définir une stratégie pour les applications installées, puis de mettre en corrélation cette stratégie au moment de l’exécution.

L’identité de l’application est requise pour les applications ambiantes de sorte que les préférences utilisateur puissent être déterminées au moment de l’exécution. Une fois qu’une application est installée, si elle utilise les API ambiantes, le système doit mettre en corrélation l’instance en cours d’exécution d’une application avec les préférences de l’utilisateur. En outre, rendre votre application disponible pour l’utilisateur dans les paramètres nécessite un artefact post-installation qui indique au système que votre application est un utilisateur légitime des API d’éclairage ambiant.

Cette exigence d’identité est obtenue via l’empaquetage MSIX (une technologie de déploiement et d’empaquetage Microsoft anciennement appelée APPX).

Si vous utilisez déjà l’empaquetage MSIX pour l’empaquetage et l’installation, il n’existe aucune autre configuration requise.

Si vous disposez d’une application non empaquetée, il existe des étapes supplémentaires requises pour obtenir l’identité de l’application. Vous pouvez migrer votre installation vers MSIX complète, ou vous pouvez utiliser la fonctionnalité d’empaquetage éparse et d’emplacement externe simplifiée de MSIX. L’empaquetage partiel avec emplacement externe a été conçu pour permettre aux installations d’applications existantes de bénéficier d’une identité d’application sans nécessiter une conversion complète du programme d’installation vers MSIX. Il s’agit d’une nouvelle étape de votre installation/installation qui utilise des outils pour créer un package MSIX pour représenter l’application que vous installez.

Vous devez définir un manifeste d’empaquetageAppXManifest.xml qui décrit votre installation. Le package MSIX est créé avec l’outil MakeAppXPackage. Au moment de l’installation, vous installez le package MSIX à l’aide d’une API Gestionnaire de package qui spécifie l’emplacement de votre exécutable installé. Pour plus de commodité, le script PowerShell add-appxpackage encapsule également ce comportement d’API. Vous pouvez également utiliser AddPackageByUriAsync au moment de l’installation pour installer le package MSIX.

Pour les installations d’applications non empaquetées, il existe également une exigence de manifeste d’application côte à côte pour votre exécutable.

Consultez la vue d’ensemble du déploiement pour obtenir une explication plus approfondie des applications empaquetées et non empaquetées.

Exemples

exemple LampArray

Montre comment contrôler l’éclairage RVB des périphériques à l’aide de la Windows. Devices.Lights et Windows. Devices.Lights.Effects API.

Exemple AutoRGB

Montre comment extraire une couleur unique et représentative d’un écran de bureau et l’utiliser pour illuminer les lampes LED sur un appareil RVB connecté.

Voir aussi