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 creen aplicaciones personalizadas que puedan configurar la cámara y ajustar las opciones de imagen predeterminadas.

Introducción

Windows 11 proporciona un marco de aplicación complementaria de cámara que permite a los fabricantes desarrollar aplicaciones con las siguientes capacidades:

  • Capacidad de mostrar o modificar la misma configuración de valores predeterminados 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 la configuración de 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 de Matiz).

  • Capacidad de registrar, actualizar o eliminar la configuración de valores predeterminados para 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).

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

Término Definición
Aplicación complementaria Una aplicación personalizada desarrollada por el fabricante de la cámara 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 Un 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 para compatibilidad con hardware, un marco compatible con Microsoft para descargar e instalar automáticamente aplicaciones asociadas a hardware desde Microsoft Store cuando se conecta el dispositivo.
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 NPU.
UVC Clase de vídeo USB, la interfaz estandarizada para controlar y transmitir desde cámaras conectadas mediante USB.

Requisitos de la aplicación complementaria

Las aplicaciones complementarias deben ser aplicaciones empaquetadas 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 HSA

No es obligatorio que las aplicaciones complementarias se configuren como aplicaciones para compatibilidad con hardware, pero es muy recomendable. Las HSA son aplicaciones especiales en Microsoft Store que están asociadas a un dispositivo de hardware específico. Cuando ese dispositivo se conecta a un equipo, la HSA se descarga e instala automáticamente desde Microsoft Store cuando está disponible.

Asociación de 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 de paquete (PFN) de la aplicación complementaria:

Nombre Tipo Data
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 complementaria}". Cuando se hace clic en él, 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 transfiere como contexto a través de los argumentos Application.OnLaunched.

Argument Tipo Data
cameraId Cadena 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 administradas por la misma aplicación complementaria.

Inicio de 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, consulta Iniciar 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 valores predeterminados 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 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 de Matiz)

  • Configuración para 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 incrementando el tiempo de exposición de la cámara.

Windows admite un control de brillo heredado (KSPROPERTY_VIDEOPROCAMP_BRIGHTNESS) diseñado teniendo en cuenta controles de ganancia simples. 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 modo que cuando se "centre", el brillo sea neutro y que el cliente pueda aplicar un desplazamiento aumentando o disminuyendo 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 Brillo en la página de configuración de la cámara o en una aplicación complementaria, la cámara se encargue de aplicar un sesgo positivo o negativo fijo a la exposición independientemente de las condiciones de iluminación en cualquier 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 página de 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 sincronizada.

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 de ControlMonitorApp.

Consulte también

Application.OnLaunched

Página de configuración de la cámara

Ejemplo de CameraSettingsExternalSettingsApp

Ejemplo de ControlMonitorApp

Get-AppxPackage

Aplicación para compatibilidad con 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