Динамическое освещение
В этом разделе описывается, как приложения Windows могут предоставлять динамические эффекты освещения на подключенных устройствах, реализующих открытый стандарт освещения и освещения устройств с интерфейсом человека (HID). В частности, спецификация LampArray для устройств с одним или несколькими лампами (свет, индикаторы, лампочки и т. д.).
Важные API
Обзор
Поддержка динамического освещения в Windows позволяет разработчикам приложений и конечным пользователям управлять и синхронизировать эффекты освещения между периферийными устройствами и другими подключенными устройствами.
Поддерживаемые типы приложений и платформы
- Win10 версии 1809 (октябрь 2018 г.) и более поздних версий.
- Применяется к приложениям UWP и Win32 переднего плана.
- Windows 11 Сборка 23466 (предварительная версия) и более поздние версии.
- Применяется к приложениям UWP и Win32 переднего плана и фона (окружающая среда).
- Xbox GDK за март 2023 г. с обновлением 1 и более поздних версий.
- См. API освещения в пакете средств разработки игр (GDK).
Поддерживаемые устройства и типы устройств
- Клавиатура или клавиатура
- Мышь
- Игровой контроллер (gamepad, flightstick, рулевая колесика и т. д.).
- Периферийные устройства (такие как динамики, панели мыши, микрофоны, веб-камеры и т. д.).
- Сцена (устройства комнаты или сцены/области, такие как лампочки, прожекторы, стробовые огни, рекламные щиты, вспышки камеры и т. д.).
- Уведомление (устройства с вниманием пользователей, такие как будильники, голосовые помощники и т. д.).
- Шасси (внутренние компоненты ПК, такие как ОЗУ, материнской платы, вентилятор и т. д.).
- Носимые (аксессуары, такие как гарнитуры, часы, фитнес-трекеры, обувь и т. д.).
- Мебель (например, стулья, столы, книжные шкафы и т. д.).
- Искусство (например, картина или скульптура).
- Гарнитура (аксессуары, разработанные специально для головы, такие как наушники или микрофоны).
Приложение Windows может управлять устройствами HID LampArray, когда приложение находится на переднем плане (начиная с Windows 10) и когда оно находится в фоновом режиме (также известное как внешнее освещение, начиная с Windows 11).
Пользователи могут настраивать возможности устройства LampArray (как переднего плана, так и фона) с помощью параметров —> персонализация> — динамический экран освещения , позволяя им синхронизировать устройства от разных производителей, управлять яркостью и эффектами на выбранных устройствах и форм-факторах, а также определять приоритет доступа к устройствам в фоновом режиме. Эти функции позволяют приложениям развлечь пользователей, сделать их более продуктивными, сделать их опыт работы в Windows более доступными и обеспечить единый интерфейс в наборе устройств, совместимых с динамическим освещением.
Определение приоритета устройства
Windows определяет динамическое освещение на основе состояния приложения. По умолчанию приложение переднего плана всегда назначается элементу управления устройством LampArray, если пользователь не указал иное в параметрах. В случаях, когда два или более фоновых приложений во внешней среде пытаются управлять устройством LampArray, система будет назначать управление приложению, приоритетом которого являются параметры.
Фоновое (окружающее) освещение
API-интерфейсы "внешний" в Windows.Devices.Lights позволяют фоновым приложениям управлять устройствами LampArray во время взаимодействия пользователя с не связанным приложением на переднем плане (например, музыкальные приложения, которые управляют синхронизированными эффектами освещения).
Приложения могут получать события LampArray.AvailabilityChanged в зависимости от параметров пользователя. В сочетании с классом DeviceWatcher приложения могут отслеживать и управлять всеми подключенными или отключенными устройствами LampArray и видеть, какой пользователь ожидает, что приложение будет контролировать. Один из примеров использования — это пользовательский интерфейс, который отображает значок для каждого подключенного устройства, недоступные из неактивного цвета и ссылки на страницу параметров динамического освещения, где пользователь может вносить изменения в настройки переднего плана или фонового приложения.
Параметры пользователя
Пользователи могут контролировать и настраивать устройства HID LampArray на отдельном и глобальном уровне с помощью страницы динамического освещения в параметрах —> персонализация —> динамическое освещение. Эта страница будет отображаться в параметрах, когда к компьютеру подключено по крайней мере одно совместимое устройство.
При подключении совместимые устройства будут отображаться в карточках устройств в верхней части страницы, где пользователи могут изменять отдельные параметры устройства.
Параметры глобального динамического освещения расположены под карточками устройств (изменения этих параметров влияют на все подключенные устройства).
- Переключатель "Использовать динамическое освещение" на моих устройствах позволяет пользователям включать или отключать динамическое освещение. При отключении динамического освещения устройства должны работать с их поведением по умолчанию, отличном от динамического освещения. Динамическое освещение включает встроенный набор основных эффектов.
- Совместимые приложения на переднем плане всегда управляют освещением, что позволяет пользователям включать или выключать поведение приложения динамического освещения по умолчанию. Если эта функция отключена, фоновое приложение может управлять связанными устройствами, даже если приложение переднего плана, которое хочет управлять активным элементом управления.
- В разделе " Фоновый свет" пользователи могут определить приоритет установленных приложений, которые зарегистрировались в качестве фоновых контроллеров окружающей среды. Перетащите приложение в верхнюю часть списка и убедитесь, что оно может контролировать устройства над другими приложениями в списке. Параметры фона окружения привязаны к устройству и порту, на который он подключен. Если вы отключите и подключите LampArray к другому порту (USB), оно будет отображаться как другое устройство.
- Ползунок "Яркость" позволяет пользователям устанавливать яркость светодиодных индикаторов на своих устройствах.
- Раскрывающийся список "Эффекты" позволяет пользователям выбирать цвета и эффекты для своих устройств.
Примечание.
Если устройство не выбрано для фонового управления светом, оно работает в автономном режиме, что означает, что устройство отменяется на поведение встроенного ПО по умолчанию.
Упаковка и удостоверение приложения
Фоновые приложения среды должны объявлять AppExtension в манифесте приложения (дополнительные сведения о том, как это сделать, см. в статье "Создание и размещение расширения приложения"). Это требование применяется сервером AmbientLightingServer, который принимает подключения только из AmbientLightingClient в процессе с удостоверением пакета (упакованного приложения), поддерживающим расширение. Это требование необходимо, чтобы пользователь мог определить политику для установленных приложений, а затем сопоставить эту политику во время выполнения.
Удостоверение приложения требуется для внешних приложений, чтобы пользовательские предпочтения можно было определить во время выполнения. После установки приложения, если он использует внешние API, система должна сопоставить запущенный экземпляр приложения с предпочтениями пользователя. Кроме того, чтобы приложение было доступно пользователю в параметрах, требуется артефакт после установки, указывающий на то, что ваше приложение является законным пользователем API внешнего освещения.
Это требование удостоверения достигается с помощью упаковки MSIX.
Если вы уже используете упаковку MSIX для упаковки и установки, дополнительные требования отсутствуют.
Если у вас есть распаковка приложения, необходимо выполнить дополнительные действия для получения удостоверения приложения. Вы можете перенести установку в полную версию MSIX или использовать упрощенную функцию разреженной упаковки и внешнего расположения MSIX. Разреженная упаковка с внешним расположением предназначена для того, чтобы существующие установки приложений получили преимущество удостоверения приложения, не требуя полного преобразования установки или установки в MSIX. Это новый шаг установки или установки, использующий средства для создания пакета MSIX для представления установленного приложения.
Необходимо определить манифест упаковки AppXManifest.xml, описывающий установку. Пакет MSIX создается с помощью средства MakeAppXPackage. Во время установки пакет MSIX устанавливается с помощью API диспетчер пакетов, который указывает расположение установленного исполняемого файла. Для удобства скрипт PowerShell надстройки appxpackage также упаковывает это поведение API. Кроме того, AddPackageByUriAsync можно использовать во время установки пакета MSIX.
Для распаковки установок приложений также требуется параллельное требование манифеста приложения для исполняемого файла.
Дополнительные сведения о пакетных и распакованных приложениях см. в обзоре развертывания.
Глоссарий
Следующие термины и понятия используются для описания различных компонентов системы освещения окружающей среды.
Автономный режим
Определяется в спецификации HID в режиме, в котором оборудование возвращается к поведению по умолчанию, как определено его встроенного ПО. Например, устройство может иметь предварительно пропрограммированные визуальные эффекты, которые по умолчанию имеют значение по умолчанию, если ОС не активно управляет устройством или если пользователь отказался от участия в ОС для устройства. Устройство должно отвечать на команду HID, чтобы вернуться из автономного режима, чтобы обеспечить плавное взаимодействие с ожиданиями пользователей.
Внешние приложения
Потребители API Windows.Devices.Lights , которые также имеют удостоверение пакета и поддерживают требуемое расширение приложения. Внешние приложения получают уведомления от AmbientLightingClient. События сообщают приложению устройств, к которых у них есть доступ. Таким образом, приложение может отображать пользовательский интерфейс, перечисляющий подключенные устройства освещения, и серым цветом устройств, которые в настоящее время недоступны из-за параметров политики пользователей. Внешние приложения используют API Windows.Devices.Lights для управления эффектами на доступных устройствах.
Applet "Параметры"
Сохраняет настройки пользователя на устройство в HKEY_CURRENT_USER (HKCU) реестра. Пользователь может определять на каждом устройстве приоритетный набор внешних приложений для данного устройства. Пользователь также может отказаться от динамического освещения.
Удостоверение приложения
Концепция модели приложения. Приложение с удостоверением приложения можно определить системой во время выполнения.
MSIX
Технология развертывания и упаковки Майкрософт, ранее известная как APPX.
Примеры
Демонстрируется управление освещением RGB периферийных устройств с помощью API Windows.Devices.Lights и Windows.Devices.Lights.Effects.
Демонстрирует, как извлечь один репрезентативный цвет с экрана рабочего стола и использовать его для освещения светодиодных ламп на подключенном УСТРОЙСТВЕ RGB.