Compartir a través de


Aplicaciones complementarias de cámara

En este artículo se describen las aplicaciones complementarias, una característica de extensibilidad para que los fabricantes de cámaras compilen aplicaciones personalizadas que puedan configurar la cámara y ajustar las opciones de imagen predeterminadas.

Introducción

Windows 11 proporciona un marco de aplicaciones complementarias de cámara que permite a los fabricantes desarrollar aplicaciones con las siguientes funcionalidades:

  • Capacidad para mostrar o modificar la misma configuración de valor predeterminada que admite la página de configuración de la cámara (por ejemplo, Brillo, Contraste, Efectos de fondo, etc.).

  • Capacidad de registrar, actualizar o eliminar valores predeterminados para otros controles de cámara que se conocen en Windows, pero que no se exponen a través de la página de configuración de la cámara (por ejemplo, el control Hue).

  • Capacidad de registrar, actualizar o eliminar valores predeterminados para controles de cámara propietarios del fabricante (por ejemplo, el control de encendido y apagado para el efecto de ajuste de iluminación personalizado del fabricante de una cámara).

Cuando una cámara registra una aplicación complementaria asociada, se agrega una entrada a la página de configuración de la cámara. Si la aplicación está instalada, se puede iniciar desde la página de configuración de la cámara; de lo contrario, se muestra un vínculo a Microsoft Store para descargarla.

Las aplicaciones complementarias tienen acceso especial a una API que les permite registrar, actualizar o eliminar valores predeterminados, como la página de configuración de la cámara.

Terminología y requisitos previos

Término Definición
Aplicación complementaria Una aplicación personalizada desarrollada por el fabricante de cámaras que permite la configuración y administración de una cámara además de la página de configuración de la cámara.
Valor actual El valor de un control de cámara que está activo actualmente en el ISP de la cámara y que se mantiene en la memoria temporal de la cámara.
Valor predeterminado Valor inicial de un control de cámara que se almacena en el disco y se guarda para una cámara específica, para una cuenta de usuario específica, en un equipo específico.
HSA Aplicación de soporte técnico de hardware, un marco compatible con Microsoft para descargar e instalar automáticamente aplicaciones asociadas a hardware desde Microsoft Store cuando el dispositivo está conectado.
NPU Unidad de procesamiento neuronal, hardware dedicado diseñado para procesar cargas de trabajo de inteligencia artificial con un alto rendimiento y eficiencia.
Efectos de Windows Studio Colección de efectos de vídeo disponibles en equipos Windows seleccionados con NPUs.
UVC Clase de vídeo USB, la interfaz estandarizada para controlar y transmitir desde cámaras conectadas USB.

Requisitos de la aplicación complementaria

Las aplicaciones complementarias deben empaquetarse con una identidad de paquete. La aplicación complementaria también debe publicarse en Microsoft Store, lo que permite que la página de configuración de la cámara guíe a los clientes a la tienda para instalar la aplicación si aún no está instalada.

Las aplicaciones de escritorio tradicionales sin una identidad de paquete no se pueden usar como aplicación complementaria.

Aplicaciones complementarias como Cuentas de Ahorro para la Salud

Las aplicaciones complementarias no son necesarias para configurarse también como una aplicación de soporte técnico de hardware, pero se recomienda encarecidamente. Los HSA son aplicaciones especiales en Microsoft Store que están asociadas a un dispositivo de hardware específico. Cuando ese dispositivo está conectado a un equipo, el HSA se descarga e instala automáticamente desde Microsoft Store cuando está disponible.

Asociar una aplicación complementaria a una cámara

El fabricante de una cámara puede asociar una aplicación complementaria rellenando una clave de propiedad de dispositivo específica con el nombre de familia del paquete (PFN) de la aplicación complementaria:

Nombre Tipo Datos
SCSVCamPfn REG_SZ <PFN>

Para identificar el PFN de la aplicación complementaria, ejecute Get-AppxPackage desde PowerShell, por ejemplo:

Get-AppxPackage -Name CompanionAppName

Para asociar la aplicación complementaria a una cámara, use un descriptor MSOS en una cámara UVC o la directiva AddReg en el INF del controlador de cámara. Por ejemplo, con el archivo INF:

[SocCaptureSim.RearCamera.AddReg]

HKR,,SCSVCamPfn,,%AppPFN%

...

[Strings]

AppPFN="Contoso.CameraCompanion_xxxxxxxx00000"

Cuando una aplicación complementaria está asociada a una cámara, la página de configuración de la cámara incluye un vínculo a la aplicación complementaria en el encabezado "Configuración relacionada" de la página de configuración específica de la cámara.

Si la aplicación complementaria ya está instalada, se muestra un vínculo a "Abrir {nombre de aplicación complementario}". Cuando se hace clic en ella, se inicia la aplicación.

Si la aplicación complementaria aún no está instalada, se muestra un vínculo para iniciar Microsoft Store para descargar e instalar la aplicación.

Una cámara solo puede tener una aplicación complementaria asociada.

Inicio de una aplicación complementaria desde la página de configuración de la cámara

Cuando la página de configuración de la cámara inicia la aplicación complementaria, el vínculo simbólico de la cámara se pasa como contexto a través de los argumentos Application.OnLaunched .

Argumento Tipo Datos
cameraId Cuerda Vínculo simbólico

Esta funcionalidad permite que la aplicación complementaria muestre la configuración correcta de la cámara en los escenarios siguientes:

  1. Una sola aplicación complementaria admite varias cámaras en un único sistema (por ejemplo, una aplicación proporcionada por OEM admite las cámaras delanteras y traseras en una tableta).

  2. Un cliente tiene dos de las mismas cámaras (o de la misma marca) conectadas a su sistema administrados por la misma aplicación complementaria.

Iniciar la página de configuración de la cámara desde una aplicación complementaria

Una aplicación complementaria puede iniciar la página de configuración de la cámara de Windows mediante un URI de vínculo profundo. Para obtener más información, consulte abrir la página de configuración de la cámara.

Configuración de valores predeterminados desde aplicaciones complementarias

Una aplicación complementaria puede usar la API IMFCameraConfigurationManager para configurar la configuración de valor predeterminado del usuario actual. Esta API permite que la aplicación complementaria lea los valores predeterminados configurados (por ejemplo, los valores predeterminados establecidos por el usuario mediante la página de configuración de la cámara), modifique los valores predeterminados, registre los nuevos valores predeterminados o quite los valores predeterminados guardados.

Los valores predeterminados se registran en la base de datos del sistema como un par de un GUID de propiedad KS y el valor correspondiente. Esto permite que la arquitectura sea independiente de la definición de la propiedad KS. Esta flexibilidad permite a una aplicación complementaria establecer, editar o eliminar valores predeterminados para cualquiera de las siguientes opciones:

  • Configuración que también se puede configurar mediante la página de configuración de la cámara (por ejemplo, Brillo, Contraste, Efectos de fondo, etc.)

  • Configuración de otros controles de cámara conocidos para Windows, pero que no se exponen a través de la página de configuración de la cámara (por ejemplo, el control Hue)

  • Configuración de los controles de cámara propietarios del fabricante (por ejemplo, el control de encendido y apagado para el efecto de ajuste de iluminación personalizado del fabricante de una cámara)

Configuración del brillo desde una aplicación complementaria

Hay varias maneras de que una cámara controle el brillo efectivo de la imagen capturada. Por ejemplo, el brillo se puede aumentar aplicando una ganancia sencilla a la imagen, o bien puede aumentarse aumentando el tiempo de exposición de la cámara.

Windows admite un control de brillo heredado (KSPROPERTY_VIDEOPROCAMP_BRIGHTNESS) diseñado con controles de ganancia simples en mente. Windows también admite un control de compensación de exposición (KSPROPERTY_CAMERACONTROL_EXTENDED_EVCOMPENSATION) diseñado para controlar un sesgo de valor de exposición positivo o negativo en el algoritmo de exposición automática de una cámara.

Independientemente del control de brillo utilizado por una cámara, debe implementarse en la cámara de manera que al 'centrarse', el brillo sea neutro y que el cliente pueda aplicar un ajuste elevando o reduciendo el valor. Para obtener la mejor calidad de imagen, se recomienda encarecidamente que las cámaras admitan el control de compensación de exposición para que si un cliente ajusta el control de brillo en la página de configuración de la cámara o en una aplicación complementaria, la cámara esté configurada para aplicar un sesgo positivo o negativo fijo a la exposición, independientemente de las condiciones de iluminación en ningún momento.

Para obtener más información, consulte la página de configuración de la cámara para ver el comportamiento del control Brillo en la página de configuración de la cámara en función del control que implementa la cámara. Si una aplicación complementaria también ofrece un control deslizante de brillo, es fundamental replicar la lógica para garantizar la sincronización entre el control deslizante de brillo en la configuración de la cámara y la aplicación complementaria.

El ejemplo de aplicación complementaria vinculado a continuación incluye una implementación de referencia de esta lógica.

Supervisión de cambios de valor actual en tiempo real

Si una aplicación complementaria se ejecuta al mismo tiempo que la página de configuración de la cámara, es posible que el cliente cambie un valor predeterminado mediante la página de configuración de la cámara mientras la aplicación complementaria se ejecuta simultáneamente en modo compartido para mostrar una vista previa. En este caso, es conveniente que la aplicación complementaria supervise los cambios en el valor predeterminado de los controles para que pueda permanecer sincronizado.

Para ello, la aplicación complementaria puede usar IMFCameraControlMonitor para supervisar los cambios en el valor actual de los controles (propiedades KS) de interés. Estos cambios pueden producirse debido a:

  • Una aplicación de cámara (por ejemplo, Microsoft Teams) usa la cámara y realiza un cambio en el valor actual de un control.

  • La página de configuración de la cámara usa la cámara y realiza un cambio en el valor predeterminado de un control (que también actualiza el valor actual).

Esta API se puede usar como desencadenador para volver a leer el valor predeterminado de un control de interés mediante la API IMFCameraConfigurationManager y actualizar la interfaz de usuario si se han cambiado los valores predeterminados.

Ejemplos de aplicaciones complementarias

Hay disponible una aplicación complementaria de ejemplo en GitHub: ejemplo CameraSettingsExternalSettingsApp. En este ejemplo se muestra cómo usar la API IMFCameraConfigurationManager para cambiar el valor predeterminado de Contraste, Brillo y Segmentación de fondo.

Otra aplicación de ejemplo que muestra cómo usar la API IMFCameraControlMonitor para supervisar los cambios en los controles de interés está disponible en GitHub: Ejemplo controlMonitorApp.

Consulte también

Application.OnLaunched

Página de configuración de cámara

Ejemplo de CameraSettingsExternalSettingsApp

Ejemplo de ControlMonitorApp

Get-AppxPackage

Aplicación de soporte técnico de hardware

IMFCameraConfigurationManager

IMFCameraControlMonitor

KSPROPERTY_VIDEOPROCAMP_BRIGHTNESS

KSPROPERTY_CAMERACONTROL_EXTENDED_EVCOMPENSATION

Iniciar la página de configuración de la cámara

Descriptor de MSOS

Aplicaciones empaquetadas