Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описываются приложения-компаньоны, функция расширяемости для производителей камер для создания пользовательских приложений, которые могут настроить камеру и настроить параметры изображения по умолчанию.
Введение
Windows 11 предоставляет платформу приложений-компаньонов камеры, которая позволяет производителям разрабатывать приложения со следующими возможностями:
Возможность отображения и (или) изменения тех же параметров по умолчанию, что и страница параметров камеры (например, яркость, контрастность, фоновые эффекты и т. д.).
Возможность регистрировать, обновлять или удалять параметры значения по умолчанию для других элементов управления камерой, известных Windows, но не видимых на странице параметров камеры (например, элемент управления Hue).
Возможность регистрировать, обновлять или удалять параметры настроек по умолчанию для собственных элементов управления камерой производителя (например, включение/выключение пользовательского эффекта корректировки освещения производителя камеры).
Когда камера регистрирует связанное приложение-компаньон, запись добавляется на страницу параметров камеры. Если приложение установлено, его можно запустить с страницы параметров камеры, а также появится ссылка на Microsoft Store, чтобы скачать ее.
Приложения-компаньоны имеют специальный доступ к API, который позволяет им регистрировать, обновлять или удалять значения по умолчанию, такие как страница параметров камеры.
Терминология и предварительные требования
Срок | Определение |
---|---|
Приложение-компаньон | Пользовательское приложение, разработанное производителем камеры, которое позволяет настраивать и управлять камерой в дополнение к странице параметров камеры. |
Текущее значение | Значение элемента управления камерой, который в настоящее время активен в процессоре обработки изображений камеры и хранится во временной памяти камеры. |
Значение по умолчанию | Начальное значение элемента управления камерой, которое хранится на диске и сохраняется для определенной камеры для определенной учетной записи пользователя на определенном компьютере. |
HSA | Приложение для поддержки аппаратного обеспечения, которое поддерживается корпорацией Майкрософт, для автоматического скачивания и установки приложений, связанных с оборудованием, из магазина Microsoft Store, когда устройству осуществляется подключение. |
НПУ | Единица нейронной обработки, выделенное оборудование, предназначенное для обработки рабочих нагрузок искусственного интеллекта с высокой пропускной способностью и эффективностью. |
Эффекты Windows Studio | Коллекция видеоэффектов, доступных на некоторых компьютерах Windows с нейронными процессорами. |
UVC | Класс USB-видео, стандартизированный интерфейс для управления и потоковой передачи с usb-подключенных камер. |
Требования к приложениям-компаньонам
Приложения-компаньоны должны быть упакованными приложениями с удостоверением пакета. Приложение-компаньон также должно быть выпущено в Microsoft Store, что позволяет странице параметров камеры направлять клиентов в магазин устанавливать приложение, если оно еще не установлено.
Традиционные настольные приложения без идентификации пакета нельзя использовать как приложения-компаньона.
Приложения-компаньоны в качестве HSAs
Приложения-компаньоны также не требуются для настройки в качестве приложения поддержки оборудования, но настоятельно рекомендуется. HSAs — это специальные приложения в Microsoft Store, связанные с определенным аппаратным устройством. Когда устройство подключено к компьютеру, HSA автоматически загружается и устанавливается из Microsoft Store при наличии.
Связывание приложения-компаньона с камерой
Производитель камеры может связать приложение-компаньон, заполнив специфический ключ свойства устройства именем семейства пакетов (PFN) приложения-компаньона.
Имя | Тип | Данные |
---|---|---|
SCSVCamPfn | REG_SZ | <PFN> |
Чтобы определить PFN приложения-компаньона, выполните команду Get-AppxPackage из PowerShell, например:
Get-AppxPackage -Name CompanionAppName
Чтобы связать приложение-компаньон с камерой, используйте дескриптор MSOS в камере UVC или директиву AddReg в INF драйвера камеры. Например, с помощью INF-файла:
[SocCaptureSim.RearCamera.AddReg]
HKR,,SCSVCamPfn,,%AppPFN%
...
[Strings]
AppPFN="Contoso.CameraCompanion_xxxxxxxx00000"
Если приложение-компаньон связан с камерой, страница параметров камеры содержит ссылку на приложение-компаньон в заголовке "Связанные параметры" страницы конкретных параметров камеры.
Если приложение-компаньон уже установлено, ссылка отображается на "Открыть {имя приложения-компаньона}". При щелчке приложение запускается.
Если приложение-компаньон еще не установлено, ссылка отображается для запуска Microsoft Store для скачивания и установки приложения.
Камера может быть связана только с одним приложением-компаньоном.
Запуск приложения-компаньона на странице параметров камеры
Когда страница параметров камеры запускает приложение-компаньон, символьная ссылка камеры передается в качестве контекста через аргументы Application.OnLaunched .
Аргумент | Тип | Данные |
---|---|---|
cameraId | Струна | Символьная ссылка |
Эта функция позволяет приложению-компаньону отображать правильные параметры камеры в следующих сценариях:
Одно приложение-компаньон поддерживает несколько камер в одной системе (например, предоставленное OEM-приложение поддерживает камеры переднего и заднего устройств на планшете).
У клиента есть две камеры одного и того же бренда, подключенные к своей системе, управляемой тем же приложением-компаньоном.
Запуск страницы параметров камеры из приложения-компаньона
Приложение-компаньон может открыть страницу параметров камеры Windows через глубокую ссылку (deeplink URI). Дополнительные сведения см. в разделе Запуск страницы параметров камеры.
Настройка значений по умолчанию из вспомогательных приложений
Приложение-компаньон может использовать API IMFCameraConfigurationManager для настройки конфигурации значения по умолчанию текущего пользователя. Этот API позволяет приложению-компаньону считывать все настроенные значения по умолчанию (например, значения по умолчанию, заданные пользователем с помощью страницы параметров камеры), изменять значения по умолчанию, регистрировать новые значения по умолчанию или удалять сохраненные значения по умолчанию.
Значения по умолчанию регистрируются в базе данных системы в виде пары GUID свойства KS и соответствующего значения. Это позволяет архитектуре быть независимой от определения свойства KS. Эта гибкость позволяет приложению-компаньону задавать, изменять или удалять значения по умолчанию для любого из следующих параметров:
Параметры, которые также настраиваются с помощью страницы параметров камеры (например, яркость, контрастность, эффекты фона и т. д.)
Параметры других элементов управления камерой, известные Windows, но не предоставляются на странице параметров камеры (например, элемент управления Hue)
Параметры для фирменного управления камерой (например, включение и выключение пользовательского эффекта корректировки освещения, разработанного производителем камеры)
Настройка яркости из приложения-компаньона
Существует несколько способов для камеры для управления эффективной яркостью захваченного изображения. Например, яркость может быть увеличена путем применения простого усиления к изображению, или она может быть увеличена увеличением времени экспозиции камеры.
Windows поддерживает устаревший элемент управления яркостью (KSPROPERTY_VIDEOPROCAMP_BRIGHTNESS), разработанный с учетом простых регуляторов усиления. Windows также поддерживает управление компенсацией экспозиции (KSPROPERTY_CAMERACONTROL_EXTENDED_EVCOMPENSATION), предназначенное для задания положительного или отрицательного смещения значения экспозиции в алгоритме автоматической экспозиции камеры.
Независимо от того, какой элемент управления яркостью используется в камере, он должен быть реализован таким образом, чтобы, когда она находится в положении "по центру", яркость была нейтральной, и клиент мог отрегулировать её, изменяя значение. Для оптимального качества изображения настоятельно рекомендуется для камер поддерживать управление компенсацией воздействия, чтобы, если клиент настраивает элемент управления яркостью на странице параметров камеры или в приложении-компаньоне, камера получает команду применить фиксированное положительное или отрицательное смещение к воздействию независимо от условий освещения в любое время.
Дополнительные сведения см. на странице параметров камеры относительно поведения элемента управления "Яркость" в зависимости от управляющих элементов, реализуемых камерой. Если приложение-компаньон также предлагает ползунок "Яркость", важно реплицировать логику, чтобы обеспечить синхронизацию ползунка "Яркость" на странице параметров камеры и в приложении-компаньоне.
Приведенный ниже пример приложения-компаньона содержит эталонную реализацию этой логики.
Мониторинг изменений текущего значения в режиме реального времени
Если приложение-компаньон работает одновременно со страницей параметров камеры, возможно, что клиент может изменить значение по умолчанию с помощью страницы параметров камеры, а приложение-компаньон одновременно работает в общем режиме для отображения предварительного просмотра. В этом случае желательно, чтобы приложение-компаньон отслеживал изменения значения элементов управления по умолчанию, чтобы он оставался в синхронизации.
Для этого партнёрское приложение может использовать IMFCameraControlMonitor для отслеживания изменений текущих значений интересующих элементов управления (KS Properties). Эти изменения могут произойти из-за следующих изменений:
Приложение камеры (например, Microsoft Teams) использует камеру и изменяет текущее значение элемента управления.
Страница параметров камеры использует камеру и изменяет значение по умолчанию элемента управления (которое также обновляет текущее значение).
Этот API можно использовать в качестве триггера для повторного чтения значения по умолчанию для контроля интереса с помощью API IMFCameraConfigurationManager и обновления пользовательского интерфейса при изменении значений по умолчанию.
Примеры приложений-компаньонов
Пример приложения-компаньона доступен на сайте GitHub: пример CameraSettingsExternalSettingsApp. В этом примере показано, как использовать API IMFCameraConfigurationManager для изменения значения по умолчанию для контрастности, яркости и сегментации фона.
Другой пример приложения, демонстрирующий использование API IMFCameraControlMonitor для отслеживания изменений в элементах управления, представляющих интерес, доступен на GitHub в виде примера ControlMonitorApp.
См. также
Пример CameraSettingsExternalSettingsApp
Приложение поддержки оборудования
KSPROPERTY_VIDEOPROCAMP_BRIGHTNESS
KSPROPERTY_CAMERACONTROL_EXTENDED_EVCOMPENSATION