Illuminazione dinamica
Questo argomento descrive in che modo le app di Windows possono fornire effetti di illuminazione dinamica tra i dispositivi connessi che implementano lo standard open Human Interface Devices (HID) Illuminazione e Illuminazione. In particolare, la specifica LampArray per i dispositivi con una o più lampade (luci, LED, lampadine e così via).
API importanti
Panoramica
Il supporto per l'illuminazione dinamica in Windows consente sia agli sviluppatori di app che agli utenti finali di controllare e sincronizzare gli effetti di illuminazione tra periferiche e altri dispositivi connessi.
Piattaforme e tipi di app supportati
- Win10 versione 1809 (ottobre 2018) e versioni successive.
- Si applica alle app UWP e Win32 in primo piano.
- Windows 11, Build 23466 (Preview) e successive.
- Si applica alle app UWP e Win32 in primo piano e in background (ambiente).
- Xbox GDK Marzo 2023 Update 1 e versioni successive.
Dispositivi e tipi di dispositivo supportati
- Tastiera o tastierino
- Mouse
- Game controller (gamepad, flightstick, volante e così via).
- Periferica (dispositivi generali come altoparlanti, pad del mouse, microfoni, webcam e così via).
- Scena (dispositivi room/stage/area come lampadine, riflettori, luci stroboscopiche, cartelloni pubblicitari, flash fotografici e così via).
- Notifica (dispositivi di attenzione dell'utente, ad esempio allarmi, assistenti vocali e così via).
- Telaio (componenti interni del PC, ad esempio RAM, scheda madre, ventola e così via).
- Indossabile (accessori come cuffie, orologi, tracker di fitness, scarpe e così via).
- Mobili (come sedie, scrivanie, librerie e così via).
- Arte (come un dipinto o una scultura).
- Auricolare (accessori progettati appositamente per la testa, ad esempio cuffie o microfoni).
Un'app di Windows può controllare i dispositivi HID LampArray quando l'app è in primo piano (a partire da Windows 10) e quando si trova in background (nota anche come illuminazione ambientale, a partire da Windows 11).
Gli utenti possono personalizzare l'esperienza del dispositivo LampArray (sia in primo piano che in background) tramite la schermata Impostazioni -> Personalizzazione -> Illuminazione dinamica, consentendo loro di sincronizzare i dispositivi da produttori diversi, controllare la luminosità e gli effetti tra dispositivi selezionati e fattori di forma nonché classificare in ordine di priorità l'accesso ai dispositivi da app in background ambientale. Queste funzionalità consentono alle app di intrattenere gli utenti, renderle più produttive, rendere più accessibili le proprie esperienze in Windows e offrire esperienze coese nel set di dispositivi compatibili con l'illuminazione dinamica.
Definizione delle priorità dei dispositivi
Windows assegna priorità all'illuminazione dinamica in base allo stato dell'app. Per impostazione predefinita, a un'app in primo piano viene sempre assegnato il controllo di un dispositivo LampArray, a meno che l'utente non abbia specificato diversamente in Impostazioni. Nei casi in cui due o più app in background di ambiente tentano di controllare un dispositivo LampArray, il sistema assegnerà il controllo all'app in ordine di priorità alla voce Impostazioni.
Illuminazione di sfondo (ambiente)
Le API "ambient" in Windows.Devices.Lights consentono alle applicazioni in background di controllare i dispositivi LampArray mentre l'utente interagisce con un'app non correlata in primo piano (ad esempio le app musicali che determinano effetti di illuminazione sincronizzati).
Le app possono ricevere eventi LampArray.AvailabilityChanged , a seconda delle impostazioni utente. In combinazione con la classe DeviceWatcher , le app possono monitorare e gestire tutti i dispositivi LampArray connessi/disconnessi e vedere quale utente si aspetta che l'app controlli. Un esempio di utilizzo è un'interfaccia utente che esegue il rendering di un'icona per ogni dispositivo connesso, quelle non disponibili sono disattivate e i collegamenti alla pagina Impostazioni illuminazione dinamica in cui l'utente può apportare modifiche alle preferenze dell'app in primo piano o in background.
Impostazioni utente
Gli utenti possono controllare e configurare i propri dispositivi HID LampArray sia a livello individuale che globale tramite la pagina Illuminazione dinamica in Impostazioni -> Personalizzazione -> Illuminazione dinamica. Questa pagina verrà visualizzata in Impostazioni quando almeno un dispositivo compatibile è connesso al PC.
Quando si è connessi, i dispositivi compatibili verranno visualizzati nelle schede del dispositivo nella parte superiore della pagina in cui gli utenti possono modificare le impostazioni dei singoli dispositivi.
Le Impostazioni globali di Illuminazione dinamica sono reperibili sotto le schede del dispositivo (le modifiche apportate a queste impostazioni influiscono su tutti i dispositivi connessi).
- L'interruttore Usa illuminazione dinamica nei dispositivi consente agli utenti di attivare o disattivare l'illuminazione dinamica. Quando l'illuminazione dinamica è disattivata, i dispositivi devono funzionare con il comportamento predefinito di illuminazione non dinamica. L'illuminazione dinamica include un set predefinito di effetti base.
- La funzionalità app compatibili in primo piano controllano sempre l'illuminazione consente agli utenti di attivare o disattivare il comportamento predefinito dell'app Illuminazione dinamica. Quando questa funzionalità è disattivata, un'app in background può controllare i dispositivi associati anche quando un'app in primo piano che vuole il controllo è attiva.
- La sezione Controllo luce in background consente agli utenti di classificare in ordine di priorità le app installate che si sono registrate come controller in background ambientale. Il trascinamento di un'app nella parte superiore dell'elenco ne assegna la priorità e garantisce che possa controllare i dispositivi su altre app nell'elenco. Le impostazioni di background ambientale sono associate a un dispositivo e alla porta su cui è connesso. Se si scollega e quindi si collega LampArray in una porta (USB) diversa, viene visualizzata come un dispositivo diverso.
- Il dispositivo di scorrimento Luminosità consente agli utenti di impostare la luminosità del LED sui propri dispositivi.
- L'elenco a discesa Effetti consente agli utenti di selezionare colori ed effetti per i propri dispositivi.
Nota
Quando un dispositivo non è selezionato per il Controllo luce in background, funziona in modalità autonoma, il che significa che il dispositivo torna al comportamento del firmware predefinito.
Creazione di pacchetti e identità dell'app
Le applicazioni in background ambientale devono dichiarare l'AppExtension ".com.microsoft.windows.lighting" nel manifesto dell'app (per ulteriori informazioni su come eseguire questa operazione, vedere Crea e ospita un'estensione dell'app). Tale requisito viene applicato da AmbientLightingServer, che accetta solo le connessioni da un AmbientLightingClient in un processo con l'identità del pacchetto (app in pacchetto) che supporta l'estensione. Questo requisito è necessario per consentire all'utente di definire i criteri per le app installate e di correlare tale criterio in fase di esecuzione.
L'identità dell'app è necessaria per le applicazioni di ambiente in modo che le preferenze utente possano essere determinate in fase di esecuzione. Una volta installata un'applicazione, se usa le API di ambiente, il sistema deve correlare l'istanza in esecuzione di un'app con le preferenze dell'utente. Inoltre, rendere l'app disponibile all'utente nelle impostazioni richiede un artefatto post-installazione che indica al sistema che l'app è un utente legittimo delle API di illuminazione ambientale.
Questo requisito di identità viene raggiunto tramite la creazione di pacchetti MSIX.
Se si usa già la creazione di pacchetti MSIX per la creazione di pacchetti e l'installazione, non sono previsti altri requisiti.
Se si dispone di un'app non inclusa nel pacchetto, sono necessari passaggi aggiuntivi per ottenere l'identità dell'applicazione. È possibile eseguire la migrazione dell'installazione a MSIX completo, oppure è possibile usare la funzionalità semplificata Creazione di pacchetti Sparse e posizione di MSIX. La creazione di pacchetti Sparse con posizione esterna è stata progettata per consentire alle installazioni di app esistenti di ottenere il vantaggio dell'identità dell'app senza richiedere una conversione completa del setup/dell'installazione in MSIX. Si tratta di un nuovo passaggio del setup /installazione che usa gli strumenti per creare un pacchetto MSIX per rappresentare l'app che si sta installando.
È necessario definire un manifesto del pacchetto AppXManifest.xml che descrive l'installazione. Il pacchetto MSIX viene creato con lo strumento MakeAppXPackage. Al momento dell'installazione, si installa il pacchetto MSIX usando un'API Gestione pacchetti che specifica il percorso del file eseguibile installato. Per praticità, lo script PowerShell add-appxpackage esegue anche il wrapping di questo comportamento dell'API. In alternativa, AddPackageByUriAsync può essere usato al momento dell'installazione per installare il pacchetto MSIX.
Per le installazioni di app non in pacchetto, esiste anche un requisito del manifesto dell'applicazione side-by-side per il file eseguibile.
Per una spiegazione più approfondita delle app in pacchetto e non in pacchetto, vedere Panoramica della distribuzione .
Glossario
I termini e i concetti seguenti vengono usati per descrivere vari componenti del sistema di illuminazione ambientale.
Modalità autonoma
Definito nella specifica HID come modalità in cui l'hardware esegue il fallback al comportamento predefinito definito dal firmware. Ad esempio, un dispositivo potrebbe avere un effetto visivo preprogrammato che rappresenta l'impostazione predefinita quando il sistema operativo non controlla attivamente il dispositivo o se l'utente ha rifiutato esplicitamente il coinvolgimento del sistema operativo per il dispositivo. Il dispositivo deve rispondere al comando HID per ritornare dalla modalità autonoma per garantire un'interazione uniforme con le aspettative dell'utente.
App di ambiente
Consumer dell'API Windows.Devices.Lights che dispongono anche dell'identità del pacchetto e supportano l'estensione dell'app richiesta. Le app di ambiente ricevono notifiche da AmbientLightingClient. Gli eventi informano l'app dei dispositivi a cui hanno accesso. In questo modo, un'app potrebbe mostrare l'interfaccia utente che enumera i dispositivi di illuminazione connessi e disabilita i dispositivi attualmente inaccessibili a causa delle impostazioni dei criteri utente. Le app di ambiente utilizzano le API Windows.Devices.Lights per guidare gli effetti nei dispositivi disponibili.
Impostazioni applet
Archivia le preferenze utente per dispositivo nel HKEY_CURRENT_USER (HKCU) del Registro di sistema. L'utente può definire in base a ogni dispositivo il set di app di ambiente con priorità per il dispositivo specificato. L'utente può anche rifiutare esplicitamente l'illuminazione dinamica.
Identità dell'app
Concetto di modello di app. Un'app con un'identità dell'app può essere identificata dal sistema in fase di esecuzione.
MSIX
Una tecnologia di distribuzione e creazione di pacchetti Microsoft in precedenza nota come APPX.
Esempi
Illustra come controllare l'illuminazione RGB dei dispositivi periferici usando le API Windows.Devices.Lights e Windows.Devices.Lights.Effects.
Dimostra come estrarre un singolo colore rappresentativo da uno schermo desktop e usarlo per illuminare le lampade LED su un dispositivo RGB connesso.