Iluminación dinámica

En este tema se describe cómo las aplicaciones de Windows pueden ofrecer efectos de iluminación dinámica en los dispositivos conectados que implementan el estándar abierto Human Interface Devices (HID)Lighting and Illumination. En concreto, la especificación LampArray para dispositivos que tienen una o varias lámparas (luces, LED, bombillas, etc.).

Note

La clase Lamp no se aplica a la funcionalidad HID LampArray y no es relevante para este tema.

Overview

La iluminación dinámica permite a los desarrolladores de aplicaciones Windows y a los usuarios finales controlar y sincronizar los efectos de iluminación entre periféricos compatibles y otros dispositivos conectados. Estas características se pueden usar para ofrecer experiencias cohesivas que entretengan a los usuarios, les hacen más productivos e incluso hacen que sus experiencias en Windows sean más accesibles.

Plataformas y tipos de aplicaciones admitidos

  • Win10 versión 1809 (octubre de 2018) y versiones posteriores.
    • Se aplica a aplicaciones UWP y Win32 en primer plano.
  • Windows 11 compilación 23466 (versión preliminar) y versiones posteriores.
    • Se aplica a las aplicaciones UWP y Win32, tanto en primer plano como en segundo plano (ambientales).
  • Xbox GDK de marzo de 2023, Actualización 1 y versiones posteriores.

Dispositivos y tipos de dispositivos admitidos

  • Teclado o teclado numérico
  • Ratón
  • Controlador de juego (controlador para juegos, barra de vuelo, volante, etc.).
  • Periférico (dispositivos generales, como altavoces, almohadillas del mouse, micrófonos, webcams, etc.).
  • Escena (dispositivos de sala, escenario y área, como bombillas, focos, luces estroboscópicas, carteles, flashes de cámara, etc.).
  • Notificación (dispositivos de atención del usuario, como alarmas, asistentes de voz, etc.).
  • Chasis (componentes internos de PC como RAM, placa base, ventilador, etc.).
  • Portátil (accesorios como cascos, relojes, rastreadores de fitness, zapatos, etc.).
  • Muebles (como sillas, escritorios, librerías, etc.).
  • Arte (como una pintura o escultura).
  • Auriculares (accesorios diseñados específicamente para la cabeza, como auriculares o micrófonos).

Una aplicación de Windows puede controlar dispositivos HID LampArray cuando está en primer plano (a partir de Windows 10) y cuando está en segundo plano (lo que también se conoce como iluminación ambiental, a partir de Windows 11).

Priorización de dispositivos

Windows prioriza la iluminación dinámica en función del estado de la aplicación. De forma predeterminada, una aplicación en primer plano siempre tiene asignado el control de un dispositivo LampArray a menos que el usuario haya especificado lo contrario en Configuración. En los casos en los que dos o más aplicaciones en segundo plano ambiente intentan controlar un dispositivo LampArray, el sistema asignará el control a la aplicación con prioridad en Configuración.

Iluminación de fondo (ambiente)

Las API "ambiente" de Windows. Devices.Lights permiten que las aplicaciones en segundo plano controlen los dispositivos LampArray mientras el usuario interactúa con una aplicación no relacionada en primer plano (por ejemplo, aplicaciones de música que impulsan efectos de iluminación sincronizados).

Las aplicaciones pueden recibir eventos LampArray.AvailabilityChanged , en función de la configuración del usuario. Junto con la clase DeviceWatcher , las aplicaciones pueden realizar un seguimiento y administrar todos los dispositivos LampArray conectados o desconectados y ver qué usuarios esperan que la aplicación controle. Un ejemplo de uso es una interfaz de usuario que muestra un icono para cada dispositivo conectado, muestra en gris los que no están disponibles e incluye enlaces a la página de Configuración de Iluminación dinámica, donde el usuario puede cambiar las preferencias de las aplicaciones en primer plano y en segundo plano.

Configuración de usuario

Captura de pantalla de la pantalla Configuración de iluminación dinámica.

Los usuarios pueden personalizar su experiencia de dispositivo LampArray (tanto en primer plano como en segundo plano) a través de la pantalla Configuración -> Personalización -> Iluminación dinámica .

  1. Cuando esté conectado, los dispositivos compatibles aparecerán en las tarjetas de dispositivo en la parte superior de la página donde los usuarios pueden cambiar la configuración de dispositivo individual.

  2. La configuración global de iluminación dinámica se encuentra debajo de las tarjetas de dispositivo (los cambios en esta configuración afectan a todos los dispositivos conectados).

    1. La opción Usar iluminación dinámica en mis dispositivos permite a los usuarios activar o desactivar la iluminación dinámica. Cuando la iluminación dinámica está desactivada, los dispositivos deben funcionar con su comportamiento de iluminación no dinámica predeterminado. La iluminación dinámica incluye un conjunto integrado de efectos básicos.
    2. Las aplicaciones compatibles en primer plano siempre controlan la iluminación permite a los usuarios activar o desactivar el comportamiento predeterminado de la aplicación Iluminación dinámica. Cuando esta característica está desactivada, una aplicación en segundo plano puede controlar sus dispositivos asociados incluso cuando una aplicación en primer plano que quiere controlar está activa.
    3. La sección Control de luz de fondo permite a los usuarios priorizar las aplicaciones instaladas que se han registrado como controladores de fondo ambiente. Al arrastrar una aplicación a la parte superior de la lista, se le dará prioridad y se asegurará de que puede controlar los dispositivos sobre otras aplicaciones de la lista. La configuración de fondo ambiente está vinculada a un dispositivo y el puerto en el que está conectado. Si desconecta y, a continuación, conecta LampArray en un puerto diferente (USB), aparecerá como un dispositivo diferente.
    4. El control deslizante Brightness permite a los usuarios ajustar el brillo del LED en sus dispositivos.
    5. La lista desplegable Efectos permite a los usuarios seleccionar colores y efectos para sus dispositivos.

    Captura de pantalla de la pantalla Efectos de la configuración de iluminación dinámica.

Note

Cuando un dispositivo no está seleccionado para el control de luz de fondo, funciona en "modo autónomo".

Esto se define en la especificación HID como un modo en el que el hardware vuelve al comportamiento predeterminado tal como se define en su firmware. Por ejemplo, un dispositivo podría tener un efecto visual preprogramado que es el valor predeterminado cuando el sistema operativo no controla activamente el dispositivo o si el usuario ha optado por no participar en el sistema operativo para el dispositivo. El dispositivo debe responder al comando HID para volver del modo autónomo para garantizar una interacción fluida con las expectativas del usuario.

Empaquetado e identidad de aplicación

Las aplicaciones en segundo plano ambiente deben declarar la appExtension "com.microsoft.windows.lighting" en el manifiesto de la aplicación (para obtener más información sobre cómo hacerlo, consulta Crear y hospedar una extensión de aplicación). Este requisito lo aplica AmbientLightingServer, que solo acepta conexiones de un AmbientLightingClient dentro de un proceso con identidad de paquete (aplicación empaquetada) que admita la extensión. Este requisito es necesario para permitir que el usuario defina la directiva para las aplicaciones instaladas y, a continuación, poner en correlación esa directiva en tiempo de ejecución.

La identidad de la aplicación es necesaria para las aplicaciones ambientales, de modo que las preferencias del usuario se puedan determinar en tiempo de ejecución. Una vez instalada una aplicación, si usa las API de ambiente, el sistema debe correlacionar la instancia en ejecución de una aplicación con las preferencias del usuario. Además, hacer que la aplicación esté disponible para el usuario en la configuración requiere un artefacto posterior a la instalación que indica al sistema que la aplicación es un usuario legítimo de las API de iluminación ambiental.

Este requisito de identidad se cumple mediante el empaquetado MSIX (una tecnología de implementación y empaquetado de Microsoft anteriormente denominada APPX).

Si ya usa el empaquetado MSIX para el empaquetado y la instalación, no hay más requisitos.

Si tiene una aplicación desempaquetada, hay pasos adicionales necesarios para obtener la identidad de la aplicación. Puede migrar la instalación a MSIX completa, o bien puede usar la característica de empaquetado disperso simplificado y ubicación externa de MSIX. El empaquetado disperso con ubicación externa se diseñó para permitir que las instalaciones existentes de aplicaciones se beneficien de la identidad de aplicación sin requerir una conversión completa del instalador o la instalación a MSIX. Es un nuevo paso en la configuración o instalación que consiste en usar herramientas para crear un paquete MSIX que represente la aplicación que está instalando.

Debe definir un manifiesto de empaquetadoAppXManifest.xml que describa la instalación. El paquete MSIX se crea con la herramienta MakeAppXPackage. En el momento de la instalación, instale el paquete MSIX mediante una API de Administrador de paquetes que especifique la ubicación del archivo ejecutable instalado. Para mayor comodidad, el script add-appxpackage de PowerShell también encapsula este comportamiento de esta API. Como alternativa, se puede usar AddPackageByUriAsync en el momento de la instalación para instalar el paquete MSIX.

En el caso de las instalaciones de aplicaciones no empaquetadas, también existe el requisito de un manifiesto de aplicación side-by-side para su ejecutable.

Consulte Introducción a la implementación para obtener una explicación más detallada de las aplicaciones empaquetadas y sin empaquetar.

Examples

ejemplo LampArray

Muestra cómo controlar la iluminación RGB de los dispositivos periféricos mediante el Windows. Devices.Lights y Windows. Devices.Lights.Effects API.

Ejemplo de AutoRGB

Muestra cómo extraer un único color representativo de una pantalla de escritorio y usarlo para iluminar las lámparas LED en un dispositivo RGB conectado.

Consulte también