Condividi tramite


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

L'illuminazione dinamica consente sia agli sviluppatori di app Windows che agli utenti finali di controllare e sincronizzare gli effetti di illuminazione tra periferiche compatibili e altri dispositivi connessi. Queste funzionalità possono essere usate per offrire esperienze coese che intrattenono gli utenti, renderle più produttive e persino rendere le loro esperienze più accessibili in Windows.

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).

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 è una UI che visualizza un'icona per ciascun dispositivo connesso, quelle non disponibili in grigio, e i collegamenti alla pagina delle impostazioni illuminazione dinamica, dove l'utente può apportare modifiche alle preferenze delle app in primo piano e in background.

Impostazioni utente

Screenshot della schermata Impostazioni illuminazione dinamica.

Gli utenti possono personalizzare l'esperienza del dispositivo LampArray (sia in primo piano che in secondo piano) tramite le impostazioni di : personalizzazione>: illuminazione dinamica dello schermo>.

  1. 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.

  2. 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).

    1. 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.
    2. 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.
    3. 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.
    4. Il dispositivo di scorrimento Luminosità consente agli utenti di impostare la luminosità del LED sui propri dispositivi.
    5. L'elenco a discesa Effetti consente agli utenti di selezionare colori ed effetti per i propri dispositivi.

    Screenshot della schermata Effetti delle impostazioni di illuminazione dinamica.

Nota

Quando un dispositivo non è selezionato per controllo luce di fondo, opera in modalità autonoma.

Questo comportamento viene 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.

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 pacchetti MSIX (una tecnologia di distribuzione e creazione di pacchetti Microsoft precedentemente nota come APPX).

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 .

Esempi

Esempio di LampArray

Illustra come controllare l'illuminazione RGB dei dispositivi periferici usando le API Windows.Devices.Lights e Windows.Devices.Lights.Effects.

Esempio di AutoRGB

Dimostra come estrarre un singolo colore rappresentativo da uno schermo desktop e usarlo per illuminare le lampade LED su un dispositivo RGB connesso.

Vedi anche