Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se proporciona información general sobre el audio Bluetooth LE introducido en Windows 11 versión 22H2 (KB5026446).
Introducción
Bluetooth LE Audio permite transmitir audio unicast o difundir audio a dispositivos Bluetooth LE mediante transporte isócrono. A partir de la versión 5.3 de la especificación del núcleo Bluetooth, no hay ninguna interfaz de controlador de host (HCI) definida estándar para que las plataformas host envíen y reciban datos isocrónicos hacia y desde el controlador Bluetooth. En este documento se define la ruta de acceso de audio específica del proveedor de Windows Bluetooth (VSAP) para permitir que las plataformas usen soluciones específicas del proveedor para habilitar el streaming de audio Bluetooth LE. La interfaz de software de VSAP usa extensiones de clase de audio de Windows (ACX) y más propiedades de interfaz definidas en este documento.
Terminología y requisitos previos
Además de los términos definidos en esta tabla, este documento también hace referencia a los términos definidos por las extensiones de clase de audio de Windows.
Término | Definición |
---|---|
Audio LE | Abreviatura de Bluetooth LE Audio |
Audio clásico | Streaming de audio Bluetooth que usa el perfil de manos libres (HFP) y el perfil de distribución de audio avanzado (A2DP) |
Dispositivo de audio | Un único dispositivo Bluetooth LE Audio remoto o un conjunto de dispositivos Bluetooth LE Audio que componen un único punto de conexión de audio desde la perspectiva de Windows. |
BAP | El perfil de audio básico define cómo los dispositivos pueden distribuir y consumir audio mediante comunicaciones bluetooth de baja energía (LE). |
TMAP | El perfil de audio multimedia y telefonía especifica configuraciones interoperables de los perfiles y los servicios de audio de nivel inferior. |
ASCS | El servicio de control de secuencias de audio define una manera estándar para que los dispositivos Bluetooth LE Audio configuren y establezcan secuencias de audio de unidifusión. |
PACS | El Servicio de funcionalidades de audio publicado define una manera estándar de que los dispositivos Bluetooth LE Audio notifiquen sus funcionalidades de códec de audio compatibles. |
CEI | El transporte de transmisiones isocronosas conectadas se usa para enviar y recibir datos de audio de unidifusión entre dispositivos Bluetooth LE. |
BIS | El transporte de flujo isocrónico de transmisión se utiliza para transferencias de datos de audio sin conexión. |
ACX | Abreviatura de extensiones de clase de audio, que es el modelo de controlador requerido por todos los controladores de audio para soportar Bluetooth LE Audio en el sistema operativo Windows. |
Circuitos de streaming | Uno o varios objetos ACXCIRCUIT creados por la pila de controladores de audio específicos del fabricante para su ruta de transmisión. |
Circuito de perfil | Objeto ACXCIRCUIT creado por la implementación del perfil de audio Bluetooth LE en Windows. Este ACXCIRCUIT actúa como circuito principal tal como se define en la especificación acX y no es un circuito de streaming. |
En este documento se supone que está familiarizado con los términos definidos anteriormente y los siguientes comandos de HCI definidos en la especificación Bluetooth Core 5.3:
- HCI_Read_Local_Supported_Codecs (v2)
- HCI_Read_Local_Supported_Codec_Capabilities
- HCI_LE_Set_CIG_Parameters
- HCI_LE_Create_CIS
- HCI_Configure_Data_Path
- HCI_LE_Setup_ISO_Data_Path
- HCI_LE_Eliminar_Ruta_de_Datos_ISO
- HCI_LE_Remove_CIG
Bluetooth LE Audio VSAP requiere que los controladores de audio usen el marco ACX. La adopción de ACX para Bluetooth LE Audio proporciona varias ventajas, como:
- Admite el modelo de controlador de audio preferido para Windows en el futuro.
- Usa la compatibilidad nativa de ACX con soluciones de audio de múltiples capas sin necesidad de un DDI dedicado entre controladores.
- No requiere de controladores de audio IHV para transmitir las solicitudes del sistema de audio a la pila de Bluetooth. En su lugar, ACX puede enviar solicitudes directamente a la pila Bluetooth a través del circuito de perfil.
Arquitectura
Definiciones
Los siguientes componentes están implicados en las diferentes variantes de arquitectura de VSAP.
Marco de Windows ACX
Este componente permite el soporte para un extremo de audio multi-nivel. Para Bluetooth LE Audio, los componentes de software que componen un punto de conexión de audio son la pila de controladores de audio específicos del proveedor y el perfil de audio Bluetooth LE de Windows.
Conjunto de controladores de audio específicos para el proveedor
Este componente específico del proveedor es responsable de enviar y recibir datos de audio Bluetooth LE hacia y desde un controlador Bluetooth a través de una interfaz de audio definida por el proveedor. Constará como mínimo de un controlador de streaming ACX para administrar los datos de audio entrantes y salientes. Se pueden incluir más controladores ACX si son partes necesarias del punto de conexión de audio ACX de varios circuitos. Este componente también se conoce como controlador de streaming de ACX de IHV en este documento.
Perfil de audio de Bluetooth LE de Windows
Este componente contiene la implementación del perfil de audio básico (BAP), el perfil de control de volumen y el perfil de control de micrófono. Es responsable de crear el control ACXCIRCUIT para cada dispositivo Bluetooth LE Audio o conjunto de dispositivos emparejados con Windows, notificar formatos de audio notificados por el dispositivo remoto y el controlador Bluetooth, y administrar el estado de los canales y grupos isocronosos.
Pila central de Bluetooth de Windows
Este componente proporciona una interfaz para permitir que el perfil de audio Bluetooth LE de Windows consulte las funcionalidades de códec compatibles desde el controlador Bluetooth local y administre el estado de los canales y grupos isócronos.
Códec LC3
Este subcomponente es responsable de traducir entre audio LC3 comprimido y audio PCM. Admitirá tanto la codificación como las capacidades de descodificación y se pueden implementar en el software como parte de la pila del controlador de audio específico (VSAP) del proveedor, o en hardware como parte del DSP de audio o el controlador Bluetooth. El diagrama menciona LC3 por nombre, ya que es el códec estándar compatible con bluetooth SIG. Sin embargo, los códecs futuros y los códecs específicos del proveedor compatibles con Windows también se pueden incorporar a la arquitectura de forma similar.
Variantes de arquitectura
La arquitectura de VSAP de audio Bluetooth LE admite diferentes variantes para streaming.
- Streaming de audio Bluetooth LE de banda lateral sin descarga de audio
- Streaming de audio Bluetooth LE de banda lateral con descarga de audio
- Proveedor específico del streaming de audio Bluetooth LE de banda
En los diagramas siguientes, los componentes sombreados son proporcionados por el IHV y los componentes no sombreados son proporcionados por el sistema operativo.
Arquitectura de audio de banda lateral Bluetooth LE sin necesidad de descarga de audio
Una arquitectura de banda lateral utiliza una interfaz de audio específica del proveedor para permitir que el conjunto controlador de audio envíe y reciba datos de audio al controlador Bluetooth. Esta ruta de datos es independiente de la ruta de datos de HCI que se usa para otros datos Bluetooth, como la señalización de mensajes entre el cliente de unidifusión y el servidor de unidifusión remoto. En el diagrama siguiente se modela una arquitectura de banda lateral donde el códec LC3 se hospeda en el controlador Bluetooth. También es válido tener el códec LC3 hospedado como parte de la pila de controladores de audio específicos del proveedor para la codificación y descodificación de software. En ese caso, el audio que se envía al controlador Bluetooth se formatearía como fotogramas de audio LC3 en lugar de audio PCM.
En el diagrama siguiente se muestra una arquitectura de audio Bluetooth LE de banda lateral con un códec LC3 en el controlador Bluetooth.
En el diagrama siguiente se muestra una arquitectura de audio Bluetooth LE de banda lateral con un códec LC3 en la pila de controladores de audio.
Arquitectura de audio Bluetooth LE de banda lateral con descarga de audio
Una arquitectura de banda lateral con descarga de audio incluye un componente de hardware DSP de audio para proporcionar una solución de streaming de audio Bluetooth LE con ventajas de ahorro de energía. En los diagramas siguientes se muestra una posible arquitectura con el códec LC3 en el controlador Bluetooth y el códec del DSP de audio.
En el diagrama siguiente se muestra un audio Bluetooth LE de banda lateral con arquitectura de descarga de audio con un códec LC3 en el controlador Bluetooth.
En el diagrama siguiente se muestra un audio Bluetooth LE de banda lateral con arquitectura de descarga de audio con un códec LC3 en el DSP de audio.
Arquitectura de audio Bluetooth LE en banda específica del proveedor
La arquitectura de banda de VSAP permite que una canalización personalizada envíe y reciba datos de audio Bluetooth LE de la pila de controladores de audio específicos del proveedor a la HCI del controlador Bluetooth. Esta arquitectura incluye un nuevo componente, el "Componente de combinación ISO de IHV". Este componente es responsable de administrar el control de flujo de los datos ISO. También compartirá el control de flujo de comandos HCI con la pila central de Bluetooth de Windows en caso de que necesite enviar algún comando HCI.
El siguiente diagrama muestra una arquitectura de Audio Bluetooth LE en banda específica del proveedor.
Diseño detallado
Requisitos de formato de audio
Duraciones de fotogramas de audio
Los perfiles de audio Bluetooth LE permiten a las implementaciones admitir el streaming de audio con duraciones de fotogramas de audio de 7,5 milisegundos o 10 milisegundos. Windows requiere los códecs proporcionados por los IHVs para admitir ambas duraciones de fotogramas para garantizar la interoperabilidad con dispositivos de accesorios de audio Bluetooth LE y la coexistencia de calidad con otros dispositivos Bluetooth LE conectados al sistema.
Definiciones del modo de procesamiento de señal
Bluetooth LE Audio admite una amplia gama de formatos de streaming para admitir diferentes escenarios de usuario. Las especificaciones BAP y TMAP definen formatos admitidos obligatorios para la certificación. Windows aplica modos de procesamiento de señal de audio para correlacionar el formato que se va a usar con el escenario que realiza el sistema. Los controladores de audio compatibles con Bluetooth LE Audio indicarán la compatibilidad con los modos y formatos de procesamiento de señal en la tabla siguiente. Además, Bluetooth LE Audio no admite el modo de procesamiento de señal sin procesar, por lo que los controladores de audio no anunciarán ningún formato compatible para este modo.
Representar modos de procesamiento de señal de audio de transmisión
Bluetooth LE Audio requiere que los formatos de audio de representación se declaren para los siguientes modos de procesamiento de señal:
- Valor predeterminado (AUDIO_SIGNALPROCESSINGMODE_DEFAULT)
- Este modo se usa para escenarios de representación unidireccional, como la reproducción de música, las notificaciones y el audio del juego de vídeo.
- Comunicaciones (AUDIO_SIGNALPROCESSINGMODE_COMMUNICATIONS)
- Este modo se usa para escenarios bidireccionales, como llamadas de voz.
Las tablas siguientes son listas de formatos para cada caso de uso y modo de procesamiento de señal. Los formatos de audio se ordenan de la mayoría de los preferidos a los menos preferidos.
Sonidos del sistema, reproducción de música y audio de videojuegos cuando se conecta a un dispositivo estéreo o conjunto coordinado de dispositivos
Modo de procesamiento de señal: valor predeterminado
Frecuencia de muestreo | Recuento de canales | Profundidad de bits | Duración del fotograma | Velocidad de datos de audio | Id. de configuración del códec BAP (tabla 3.11 de la especificación BAP) |
---|---|---|---|---|---|
48 kHz | 2 | 16 | 7.5 ms | 96 kbps | 48_3 |
48 kHz | 2 | 16 | 7.5 ms | 80 kbps | 48_1 |
48 kHz | 2 | 16 | 10 ms | 96 kbps | 48_4 |
48 kHz | 2 | 16 | 10 ms | 80 kbps | 48_2 |
24 KHz | 2 | 16 | 7.5 ms | 48 kbps | 24_1 |
24 KHz | 2 | 16 | 10 ms | 48 kbps | 24_2 |
Sonidos del sistema, reproducción de música y audio del juego de vídeo cuando está conectado a un único miembro de un conjunto coordinado (auriculares individuales o audífonos)
Modo de procesamiento de señal: valor predeterminado
Frecuencia de muestreo | Recuento de canales | Profundidad de bits | Duración del fotograma | Velocidad de datos de audio | Id. de configuración del códec BAP (tabla 3.11 de la especificación BAP) |
---|---|---|---|---|---|
48 kHz | 1 | 16 | 7.5 ms | 96 kbps | 48_3 |
48 kHz | 1 | 16 | 7.5 ms | 80 kbps | 48_1 |
48 kHz | 1 | 16 | 10 ms | 96 kbps | 48_4 |
48 kHz | 1 | 16 | 10 ms | 80 kbps | 48_2 |
24 KHz | 1 | 16 | 7.5 ms | 48 kbps | 24_1 |
24 KHz | 1 | 16 | 10 ms | 48 kbps | 24_2 |
16 kHz | 1 | 16 | 7.5 ms | 32 kbps | 16_1 |
16 kHz | 1 | 16 | 10 ms | 32 kbps | 16_2 |
Renderizar la grabadora de voz, llamadas VOIP o el audio de juegos de video con chat de voz
Modo de procesamiento de señal: Comunicaciones
Frecuencia de muestreo | Recuento de canales | Profundidad de bits | Duración del fotograma | Velocidad de datos de audio | Id. de configuración del códec BAP (tabla 3.11 de la especificación BAP) |
---|---|---|---|---|---|
32 kHz | 1 | 16 | 7.5 ms | 64 kbps | 32_1 |
32 kilohertz (kHz) | 1 | 16 | 10 ms | 64 kbps | 32_2 |
24 KHz | 1 | 16 | 7.5 ms | 48 kbps | 24_1 |
24 KHz | 1 | 16 | 10 ms | 48 kbps | 24_2 |
16 kHz | 1 | 16 | 7.5 ms | 32 kbps | 16_1 |
16 kHz | 1 | 16 | 10 ms | 32 kbps | 16_2 |
Modos de procesamiento de señal de audio de secuencia de captura
Bluetooth LE Audio requiere que los formatos de audio de captura se declaren para el modo de procesamiento de señal predeterminado (AUDIO_SIGNALPROCESSINGMODE_DEFAULT). La lista de formatos de captura admitidos se encuentra en la tabla siguiente.
Los formatos de audio se ordenan de la mayoría de los preferidos a los menos preferidos.
Capturar grabadora de voz, llamadas VOIP o audio de videojuegos con chat de voz
Modo de procesamiento de señal: valor predeterminado
Frecuencia de muestreo | Recuento de canales | Profundidad de bits | Duración del fotograma | Velocidad de datos de audio | Id. de configuración del códec BAP (tabla 3.11 de la especificación BAP) |
---|---|---|---|---|---|
32 kHz | 1 | 16 | 7.5 ms | 64 kbps | 32_1 |
32 kHz | 1 | 16 | 10 ms | 64 kbps | 32_2 |
24 KHz | 1 | 16 | 7.5 ms | 48 kbps | 24_1 |
24 KHz | 1 | 16 | 10 ms | 48 kbps | 24_2 |
16 kHz | 1 | 16 | 7.5 ms | 32 kbps | 16_1 |
16 kHz | 1 | 16 | 10 ms | 32 kbps | 16_2 |
Configuraciones y topologías de flujo definidas
Configuraciones solo de representación
Configuración básica del perfil de audio 1
La siguiente configuración de audio se define en la tabla 4.1 de la especificación de Bluetooth BAP.
El equipo está conectado a un único dispositivo de audio que admite secuencias mono. El único dispositivo puede ser un dispositivo independiente o un único miembro conectado de un conjunto coordinado.
Ejemplos de casos de uso | Configuración de audio de Windows | Configuración del controlador Bluetooth |
---|---|---|
Reproducción de contenido multimedia |
Representación: Modo de procesamiento de señal: valor predeterminado Recuento de canales: 1 Captura: Ninguno |
Recuento de CIS: 1 Recuento de CIG: 1 Configuración de QoS de BAP: Alta confiabilidad |
Llamada de voz sin micrófono en el dispositivo de audio |
Renderizar: Modo de procesamiento de señal: Comunicaciones Recuento de canales: 1 Captura: Ninguno |
Recuento de CIS: 1 Recuento de CIG: 1 Configuración de QoS de BAP: baja latencia |
Reproducción de videojuegos |
Representación: Modo de procesamiento de señal: valor predeterminado Recuento de canales: 1 Captura: Ninguno |
Recuento de CIS: 1 Recuento de CIG: 1 Configuración de QoS de BAP: baja latencia |
Configuración básica del perfil de audio 4
La siguiente configuración de audio se define en la tabla 4.1 de la especificación de Bluetooth BAP.
El equipo está conectado a un único dispositivo de audio que admite secuencias estéreo. El dispositivo de audio es capaz de procesar dos canales de audio en un único CIS.
Ejemplos de casos de uso | Configuración de audio de Windows | Configuración del controlador Bluetooth |
---|---|---|
Reproducción de contenido multimedia |
Representación: modo de procesamiento de señal: valor predeterminado Recuento de canales: 2 Captura: Ninguno |
Recuento de CIS: 1 Recuento de CIG: 1 Configuración de QoS de BAP: Asignación de canales de audio de alta fiabilidad: izquierda frontal y derecha frontal |
Reproducción de videojuegos | Modo de procesamiento de señal: valor predeterminado Recuento de canales: 2 Captura: Ninguno |
Recuento de CIS: 1 Recuento de CIG: 1 Configuración de QoS de BAP: baja latencia Asignación de canal de audio: frontal izquierda y derecha |
Configuración básica del perfil de audio 6(i)
La siguiente configuración de audio se define en la tabla 4.1 de la especificación de Bluetooth BAP.
El equipo está conectado a un único dispositivo de audio que admite secuencias estéreo. El dispositivo de audio solo es capaz de procesar un canal de audio en cada uno de los dos CIS.
Ejemplos de casos de uso | Configuración de audio de Windows | Configuración del controlador Bluetooth |
---|---|---|
Reproducción de contenido multimedia | Modo de procesamiento de señal: valor predeterminado Recuento de canales: 2 Captura: Ninguno |
Recuento de CIS: 2 Recuento de CIG: 1 Configuración de QoS de BAP: Alta confiabilidad |
Llamada de voz sin micrófono en el dispositivo de audio | Modo de procesamiento de señal: Comunicaciones Recuento de canales: 1 Captura: Ninguno |
Recuento de CIS: 2 Recuento de CIG: 1 Configuración de QoS de BAP: baja latencia Asignación de canal de audio: frontal izquierda o derecha |
Reproducción de videojuegos | Modo de procesamiento de señal: valor predeterminado Recuento de canales: 2 Captura: Ninguno |
Recuento de CIS: 2 Recuento de CIG: 1 Configuración de QoS de BAP: baja latencia Asignación de canal de audio: frontal izquierda y derecha |
Configuración básica del perfil de audio 6(ii)
La siguiente configuración de audio se define en la tabla 4.1 de la especificación de Bluetooth BAP.
El equipo está conectado a un conjunto coordinado de dispositivos de audio. El conjunto es capaz de procesar dos canales de audio con cada miembro que procesa un único canal.
Ejemplos de casos de uso | Configuración de audio de Windows | Configuración del controlador Bluetooth |
---|---|---|
Reproducción de contenido multimedia | Modo de procesamiento de señal: valor predeterminado Recuento de canales: 2 Captura: Ninguno |
Recuento de CIS: 2 Recuento de CIG: 1 Configuración de QoS de BAP: Alta confiabilidad |
Llamada de voz sin micrófono en ninguno de los dispositivos | Modo de procesamiento de señal: Comunicaciones Recuento de canales: 1 Captura: Ninguno |
Recuento de CIS: 2 Recuento de CIG: 1 Configuración de QoS de BAP: baja latencia |
Reproducción de videojuegos | Modo de procesamiento de señal: valor predeterminado Recuento de canales: 2 Captura: Ninguno |
Recuento de CIS: 2 Recuento de CIG: 1 Configuración de QoS de BAP: baja latencia |
Configuraciones bidireccionales
Las configuraciones bidireccionales se usan cuando el perfil de audio Bluetooth LE detecta que una aplicación pretende crear una captura y representar una secuencia en un dispositivo remoto o un conjunto de dispositivos. Dado que las aplicaciones controlan las secuencias de captura y representación por separado, los controladores de audio IHV y los controladores Bluetooth deben permitir que el audio fluya a través de una dirección única de un CIS bidireccional después de que se haya aprovisionado utilizando los comandos HCI Configurar ruta de datos y Configurar ruta de datos ISO LE.
Configuración básica del perfil de audio 3
La siguiente configuración de audio se define en la tabla 4.1 de la especificación de Bluetooth BAP.
El PC está conectado a un único dispositivo de audio con un flujo mono bidireccional establecido en un único CIS.
Caso de uso | Configuración de audio de Windows | Configuración del controlador Bluetooth |
---|---|---|
Llamada de voz |
Renderizar: Modo de procesamiento de señal: Comunicaciones Recuento de canales: 1 Capturar: Modo de procesamiento de señal: valor predeterminado Recuento de canales: 1 |
Recuento de CIS: 1 Recuento de CIG: 1 Configuración de QoS de BAP: latencia baja |
Reproducción de videojuegos con chat de voz |
Renderizar: Modo de procesamiento de señal: Comunicaciones Recuento de canales: 1 Capturar: Modo de procesamiento de señal: valor predeterminado Recuento de canales: 1 |
Recuento de CIS: 1 Recuento de CIG: 1 Configuración de QoS de BAP: latencia baja |
Configuración básica del perfil de audio 8(i)
La siguiente configuración de audio se define en la tabla 4.1 de la especificación de Bluetooth BAP.
El equipo está conectado a un único dispositivo de audio que admite secuencias de representación estéreo y secuencias de captura mono. El dispositivo es capaz de procesar un canal de audio en un único CIS para una dirección determinada.
Caso de uso | Configuración de audio de Windows | Configuración del controlador Bluetooth |
---|---|---|
Llamada de voz |
Renderizar: Modo de procesamiento de señal: Comunicaciones Recuento de canales: 1 Capturar: Modo de procesamiento de señal: valor predeterminado Recuento de canales: 1 |
Recuento de CIS: 2 Recuento de CIG: 1 Configuración de QoS de BAP: latencia baja |
Reproducción de videojuegos con chat de voz |
Renderizar: Modo de procesamiento de señal: Comunicaciones Recuento de canales: 2 Capturar: Modo de procesamiento de señal: valor predeterminado Recuento de canales: 1 |
Recuento de CIS: 2 Recuento de CIG: 1 Configuración de QoS de BAP: latencia baja |
Configuración básica del perfil de audio 8(ii)
La siguiente configuración de audio se define en la tabla 4.1 de la especificación de Bluetooth BAP.
El equipo está conectado a un conjunto coordinado de dispositivos de audio. Cada miembro del grupo recibe un canal de renderizado de audio. Un único miembro de un conjunto tiene un flujo de captura establecido. El miembro del conjunto con la secuencia de captura es el primer miembro del conjunto que se conecta al PC que también admite secuencias de captura.
Caso de uso | Configuración de audio de Windows | Configuración del controlador Bluetooth |
---|---|---|
Llamada de voz |
Renderizar: Modo de procesamiento de señal: Comunicaciones Recuento de canales: 1 Capturar: Modo de procesamiento de señal: valor predeterminado Recuento de canales: 1 |
Recuento de CIS: 2 Recuento de CIG: 1 Configuración de QoS de BAP: latencia baja |
Reproducción de videojuegos con chat de voz |
Renderizar: Modo de procesamiento de señal: Comunicaciones Recuento de canales: 2 Capturar: Modo de procesamiento de señal: valor predeterminado Recuento de canales: 1 |
Recuento de CIS: 2 Recuento de CIG: 1 Configuración de QoS de BAP: latencia baja |
Configuraciones de solo captura
Configuración básica del perfil de audio 2
La siguiente configuración de audio se define en la tabla 4.1 de la especificación de Bluetooth BAP.
El equipo está conectado a un único dispositivo de audio que admite secuencias de captura mono.
Caso de uso | Configuración de audio de Windows | Configuración del controlador Bluetooth |
---|---|---|
Llamada de voz sin altavoz en el dispositivo | Renderizado: Ninguno Capturar: Modo de procesamiento de señal: valor predeterminado Recuento de canales: 1 |
Recuento de CIS: 1 Recuento de CIG: 1 Configuración de QoS de BAP: latencia baja |
Configuración básica del perfil de audio 9(i)
La siguiente configuración de audio se define en la tabla 4.1 de la especificación de Bluetooth BAP.
El equipo está conectado a un único dispositivo de audio que admite el envío de datos de audio estéreo. El dispositivo es capaz de codificar un canal de audio en un único CIS.
Caso de uso | Configuración de audio de Windows | Configuración del controlador Bluetooth |
---|---|---|
Captura de micrófono multicanal | Representación: Ninguno Capturar: Modo de procesamiento de señal: valor predeterminado Recuento de canales: 1 |
Recuento de CIS: 2 Recuento de CIG: 1 Configuración de QoS de BAP: latencia baja |
Configuración básica del perfil de audio 9(ii)
El equipo está conectado a un único dispositivo de audio que admite secuencias de captura mono.
La siguiente configuración de audio se define en la tabla 4.1 de la especificación de Bluetooth BAP.
El equipo está conectado a un conjunto de dispositivos de audio. Cada miembro del conjunto envía un canal de audio al equipo.
Caso de uso | Configuración de audio de Windows | Configuración del controlador Bluetooth |
---|---|---|
Captura de micrófono multicanal | Representación: Ninguno Capturar: Modo de procesamiento de señal: valor predeterminado Recuento de canales: 1 |
Recuento de CIS: 2 Recuento de CIG: 1 Configuración de QoS de BAP: latencia baja |
Si el dispositivo remoto o el conjunto de dispositivos admite audio bidireccional, las configuraciones de una secuencia de solo captura serán las mismas que las configuraciones bidireccionales. Esto permite realizar transiciones de solo escenarios de captura a escenarios bidireccionales sin necesidad de volver a crear las secuencias.
Estructuras de datos
Propiedades de la interfaz de audio Bluetooth LE definidas por Microsoft
Propiedades de creación de flujos
Las siguientes propiedades se comparten entre la pila de controladores de audio específicos del proveedor y el perfil de audio Bluetooth LE a través de los ACXOBJECTBAGDDIs para informar las decisiones sobre la creación y configuración del punto de conexión de flujo, como se muestra en el escenario de creación de secuencias.
CapacidadesDelCódecBluetoothLEAudio
El controlador de audio establece esta propiedad para indicar la compatibilidad con las funcionalidades de streaming de audio compatibles con el controlador de audio o el DSP de audio. El valor de la propiedad se establece con el DDI AcxObjectBagAddBlob y el formato del valor es el mismo que un registro PAC que se define en la especificación PACS.
El perfil de audio de Bluetooth LE de Windows lee la propiedad para determinar las posibles configuraciones de códec y la composición del flujo de datos a utilizar.
Campo | Octeto |
---|---|
Recuento de funcionalidades | 0 |
Códec ID[i] | 1-6 |
Longitud de funcionalidades específicas del códec[i] | 7 |
Funcionalidades específicas del códec | 8... n |
Longitud de metadatos (m) | n + 1 |
Metadatos | n+2... m |
Los valores de campo se definen en las tablas 3.2 y 3.4 de la especificación PACS.
Bluetooth_DatapathID
El controlador de audio establece esta propiedad para indicar el identificador de ruta de datos usado como parámetro para los comandos HCI_LE_Setup_ISO_Data_Path y HCI_Configure_Data_Path. El valor de la propiedad se establece mediante la DDI AcxObjectBagAddUI8 .
El perfil de audio Bluetooth LE lee y usa esta propiedad como parámetro en los comandos HCI_Configure_Data_Path y HCI_LE_Setup_ISO_Data_Path. Este identificador se aplica a todas las secuencias isócrónicas creadas para el ACXSTREAM asociado al contenedor de objetos.
Campo | Octeto |
---|---|
Identificador de ruta de acceso de datos | 0 |
Si el controlador de audio no establece la propiedad, el sistema operativo usa el valor 1 como parámetro para los comandos de HCI.
Configuración_deRutaDeDatosBluetooth
El controlador de audio establece esta propiedad para proporcionar configuraciones específicas del proveedor al controlador Bluetooth a través del comando HCI_Configure_Data_Path. No será mayor que 255 bytes, que es la carga más grande que acepta un controlador Bluetooth para un comando HCI. El valor de la propiedad se establece mediante acxObjectBagAddBlob DDI. Esta configuración se aplica a todo identificador de ruta de datos establecido por el controlador de audio.
Bluetooth LE Audio Configuración de Códec
Esta propiedad será establecida por el perfil Bluetooth LE Audio mediante el DDI AcxObjectBagAddBlob después de haber configurado el códec con un dispositivo de audio. La estructura del valor es:
Campo | Octeto |
---|---|
Recuento de configuraciones | 0 |
Formato de codificación[i] | 3 |
Id. de empresa[i] | 1-2 |
Id. de códec específico del proveedor[i] | 3-4 |
Longitud de configuración específica del códec[i] | 5 |
Configuración específica del códec[i] | 6... n |
Los valores de campo se definen en la tabla 4.3 de la especificación del servicio de control de secuencias de audio Bluetooth.
La pila de controladores de audio específica del proveedor debe leer esta propiedad si el códec LC3 está en el controlador de streaming acX o en el DSP de audio.
Interfaces
Identificadores de enlace de plantilla de extremo de audio
Usado por la fábrica de circuitos ACX del controlador de audio para saber cuándo se crea un circuito ACX para un dispositivo Bluetooth emparejado.
Los siguientes identificadores de componente se usan para crear circuitos de audio Bluetooth LE:
// {5C52FDB5-722A-4AB7-A342-70163B7E9B5C}
DEFINE_GUID(GUID_BLUETOOTH_LEAUDIO_RENDER_COMPONENT_ID,
0x5c52fdb5, 0x722a, 0x4ab7, 0xa3, 0x42, 0x70, 0x16, 0x3b, 0x7e, 0x9b, 0x5c);
// {1DFF2EE3-AE89-441C-BDE3-24F885C55DF8}
DEFINE_GUID(GUID_BLUETOOTH_LEAUDIO_CAPTURE_COMPONENT_ID,
0x1dff2ee3, 0xae89, 0x441c, 0xbd, 0xe3, 0x24, 0xf8, 0x85, 0xc5, 0x5d, 0xf8);
Interfaz de compatibilidad con audio Bluetooth LE
Lo usa la pila de controladores de audio para indicar que está disponible para la transmisión de Bluetooth LE Audio. Reloj de nivel de servicio de Audio Bluetooth de Windows para esta interfaz y espere hasta que se publique antes de habilitar la compatibilidad con Bluetooth LE Audio.
Los siguientes identificadores de interfaz se usan para publicar la interfaz de compatibilidad con audio Bluetooth LE:
// {BA02FA1B-0FD0-4A0F-A748-4FAE2E2D2F67}
DEFINE_GUID(GUID_BLUETOOTH_LEAUDIO_SUPPORT_INTERFACE,
0xba02fa1b, 0x0fd0, 0x4a0f, 0xa7, 0x48, 0x4f, 0xae, 0x2e, 0x2d, 0x2f, 0x67);
Secuencias
Inicialización del controlador de audio
Cuando el controlador IHV ACX Streaming se carga y determina que admite la transmisión de audio Bluetooth LE, mostrará compatibilidad con la tecnología mediante la creación de un objeto ACXFACTORYCIRCUIT y registrándose para enlaces de plantilla Bluetooth con ACX usando los identificadores definidos en Identificadores de enlace de plantilla de punto de conexión de audio.
Creación de puntos de conexión
- Cuando un dispositivo de audio LE está emparejado con el sistema, el perfil de audio Bluetooth LE:
- Lee las funcionalidades de audio publicadas del dispositivo remoto.
- Detecta las funcionalidades compatibles con el controlador enviando los comandos HCI_Read_Local_Support_Codecs [v2] y HCI_Read_Local_Supported_Codec_Capabilities.
- Crea un ACXCIRCUIT con los formatos admitidos establecidos en función de las funcionalidades de códec compatibles con el controlador Bluetooth y el dispositivo de audio remoto. Si el controlador no admite ningún códec porque la compatibilidad está en el DSP de audio o el controlador de audio, entonces los formatos admitidos se establecen según los formatos admitidos por el dispositivo de audio remoto.
- Una vez creado el ACXCIRCUIT , ACX solicita al generador de circuitos ACX del controlador de streaming ACX de IHV que cree un ACXCIRCUIT para el procesamiento de flujos.
- Cuando se recibe una solicitud para crear un circuito, el controlador de streaming ACX de IHV:
- Crea objetos ACXCIRCUIT, ACXPIN, ACXOBJECTBAG y ACXSTREAMBRIDGE .
- Si el códec LC3 o el códec específico del proveedor se hospeda en el controlador de audio o DSP, entonces el controlador de streaming ACX de IHV establece la propiedad BluetoothLEAudio_CodecCapabilities en ACXOBJECTBAG.
- El controlador de streaming de ACX de IHV puede establecer Bluetooth_DatapathID o Bluetooth_DatapathConfiguration en ACXOBJECTBAG si se conoce en ese momento.
- Una vez creados ambos circuitos, ACX invoca el callback EvtAcxPinConnected en el pin de puente del controlador ACX de IHV.
- Cuando se invoca la devolución de llamada EvtAcxPinConnected, el controlador de streaming ACX de IHV realiza la acción correspondiente:
- Recupera el pin de puente del circuito de perfil con AcxTarget... API para recuperar los formatos admitidos por el circuito de perfil.
- Recorre en iteración la lista de ACXDATAFORMATestablecidos por el circuito de perfil. Si el códec de audio Bluetooth se hospeda en el controlador de audio o en el DSP de audio, el controlador de audio IHV actualiza sus ACXDATAFORMAT con los formatos compatibles con el códec y el circuito de perfil. De lo contrario, todos los formatos se copian al pin host del controlador de streaming ACX de IHV.
- Establece la lista de formatos actualizada en el pin de puente si se crea un motor de audio para la descarga de streaming.
- Una vez actualizados los formatos, ACX habilita ambas interfaces y se crea un punto de conexión de audio.
Creación de flujos
- Cuando una aplicación solicita crear una secuencia de audio, ACX invoca las devoluciones de llamada EvtCircuitCreateStream registradas para cada circuito, empezando por el controlador de streaming ACX de IHV.
- Cuando se invoca su función de retorno EvtCircuitCreateStream, el controlador de streaming ACX de IHV:
- Establece o actualiza las propiedades de Bluetooth_DatapathId y Bluetooth_DataPathConfiguration en el ACXOBJECTBAG asociado a ACXSTREAMBRIDGE.
- Crea un ACXSTREAM con callbacks establecidas para las transiciones de estado del flujo y el procesamiento de flujos en tiempo real
- Crea un elemento de motor de audio en la secuencia si la canalización de audio admite la transmisión de descarga.
- Agrega ACXSTREAM a su puente de flujo. Esto invoca el callback EvtCircuitCreateStream del perfil de audio Bluetooth LE.
- Cuando se invoca su callback EvtAcxCircuitCreateStream, el perfil de audio Bluetooth LE:
- Guarda las propiedades localmente desde el ACXOBJECTBAG configurado por el controlador de streaming ACX del IHV para futuras devoluciones de llamada durante la transición de transmisión.
- Si el punto de conexión de audio es para la transmisión por unidifusión del perfil de audio Bluetooth LE:
- Realiza la operación de códec de configuración tal como se define en la especificación BAP. Los parámetros de la operación se derivan del ACXDATAFORMAT especificado en el callback EvtAcxCircuitCreateStream y se obtienen de los demás parámetros de flujo en el ACXOBJECTBAG o de las capacidades del códec compatibles con el controlador Bluetooth.
- Establece la propiedad BluetoothLEAudio_CodecConfiguration en ACXOBJECTBAG con el valor utilizado para configurar los dispositivos de audio remoto.
- Si el controlador de transmisión acX de IHV necesita actualizar su ID de ruta de datos o la configuración de la ruta de datos basándose en los valores del conjunto de objetos establecidos por el perfil, puede invocar las operaciones establecidas de KSPROPERTY para actualizar el valor almacenado por el circuito de perfil.
- Crea un ACXSTREAM con callbacks establecidos para transiciones de estado del flujo.
Transiciones de estado de flujo
ACX decide el orden del circuito de las transiciones de estado de flujo en función del flujo de audio y si el estado está pasando a un estado más activo o menos activo.
- Para representar flujos que transicionan de un estado menos activo a uno más activo, el circuito de perfilado recibe primero el evento, seguido del circuito de transmisión.
- Para secuencias de renderización que pasan de un estado más activo a un estado menos activo, el circuito de renderización recibe primero el evento, seguido del circuito de perfil.
- En el caso de los flujos de captura que van de un estado menos activo a un estado más activo, el circuito de transmisión recibe primero el evento, seguido del circuito de perfil.
- En el caso de las secuencias de captura que van de un estado más activo a un estado menos activo, el circuito de perfil recibe primero el evento, seguido del circuito de streaming.
Preparación de la secuencia
Cuando se invoca su devolución de llamada EvtAcxStreamPrepareHardware , el perfil de audio Bluetooth LE:
- Asigna recursos para una transmisión unicast por:
- Configurar un CIG con el comando HCI_LE_Set_CIG_Parameters.
- Enviar la operación de configuración de ASCS QoS para sincronizar la configuración con el dispositivo remoto.
Cuando se invoca su devolución de llamada EvtAcxStreamPrepareHardware , el controlador de streaming ACX de IHV asigna los recursos de streaming necesarios e inicializa la canalización de audio para que esté en estado adquirido.
Iniciar transmisión
Cuando se invoca su devolución de llamada EvtAcxStreamRun , el perfil de audio Bluetooth LE:
- Aplica cualquier configuración de ruta de acceso de datos establecida por el controlador de streaming ACX en el procedimiento de creación de flujos mediante el comando HCI_Configure_Data_Path.
- Comienza el procedimiento de inicio de la secuencia por:
- Realización del procedimiento Enable del flujo de unidifusión BAP para un flujo de unidifusión:
- Envío de la operación Habilitar a los puntos de conexión remotos.
- Crear CISes si aún no están creados usando el comando HCI_LE_Create_CIS.
- Realización del procedimiento Enable del flujo de unidifusión BAP para un flujo de unidifusión:
- Si la ruta de acceso de datos aún no está configurada, el perfil de audio Bluetooth LE:
- Establece las rutas de acceso de datos ISO mediante el comando HCI_LE_Setup_ISO_Data_Path
- Si el controlador de streaming ACX de IHV establece la propiedad BluetoothLEAudio_CodecCapabilities , el valor del campo Codec_ID en HCI_LE_Setup_ISO_Data_Path se establecerá en transparente (0x3) tal como se define en los números asignados por Bluetooth. De lo contrario, el valor será el mismo que el id. de códec usado en la operación de códec de configuración en el procedimiento de creación de flujos.
- Establece las rutas de acceso de datos ISO mediante el comando HCI_LE_Setup_ISO_Data_Path
- Si la transmisión de audio es una secuencia de captura de unidifusión, el perfil de audio Bluetooth LE realiza la operación de preparación inicial del receptor BAP.
Cuando se invoca su devolución de llamada EvtAcxStreamRun , el controlador de streaming ACX de IHV comienza a procesar los datos de audio entrantes desde el sistema de audio de Windows (render) o el controlador Bluetooth (captura).
Pausar secuencia
Cuando se invoca su llamada de retorno EvtAcxStreamPause, el perfil de audio Bluetooth LE:
- Realiza el procedimiento de deshabilitación del flujo de unidifusión BAP.
- Elimina la ruta de datos ISO utilizando el comando HCI_LE_Remove_ISO_Data_Path.
- Realiza el procedimiento de preparación para detener el receptor ASCS si el flujo de audio es un flujo de captura de unidifusión.
Cuando se invoca su devolución de llamada EvtAcxStreamPause , el controlador de streaming ACX de IHV pausa su canalización de procesamiento de audio.
Flujo de lanzamientos
Cuando se invoca su devolución de llamada EvtAcxStreamReleaseHardware, el perfil de Audio Bluetooth LE realiza el procedimiento de liberación de secuencia de unidifusión BAP mediante:
- Envío de la operación de liberación de ASCS al dispositivo de audio Bluetooth LE remoto
- Desconecta el CIS si no lo utiliza otra secuencia activa.
- Eliminar el CIG si todos los CIS están desconectados.
Cuando se invoca su devolución de llamada EvtAcxStreamReleaseHardware , el controlador de streaming ACX de IHV libera sus recursos de canalización de audio.
Desconexión de puntos de conexión
El perfil de audio Bluetooth LE de Windows actualiza el estado de conexión de un punto de conexión si el dispositivo de unidifusión remota no tiene una conexión LE-ACL al equipo o informa a través de sus contextos de audio disponibles PACS que no está disponible para transmisión. Cuando el punto de conexión está desconectado, el servicio de audio de Windows invalida las secuencias activas hacia el punto de conexión. Esto da lugar a que se produzcan las secuencias de pausa y liberación de la corriente.
Eliminación de puntos de conexión
Se quita un punto de conexión Bluetooth LE Audio del sistema cuando se destruye el circuito de perfil o el circuito de streaming. El circuito de perfil puede eliminarse cuando se elimina el emparejamiento del dispositivo unicast remoto desde Windows o cuando se desactiva la radio Bluetooth.
- Cuando el perfil de audio Bluetooth LE de Windows elimina su circuito, ACX deshabilita sus interfaces de punto de conexión para indicar al servicio de audio de Windows que se debe quitar el punto de conexión.
- Cuando las interfaces están deshabilitadas, el servicio de audio de Windows invalida cualquier flujo activo al punto de conexión Bluetooth LE Audio. Esta operación da como resultado la pausa del flujo y las devoluciones de llamada de liberación se invocan en el circuito de transmisión.
- Para completar la eliminación del punto de conexión, ACX invalida el circuito del controlador de streaming ACX de IHV, lo que da lugar a la invocación de la función de limpieza del circuito por parte del WDF.
- Cuando se invoca su devolución de llamada de limpieza, el controlador de streaming ACX de IHV libera su circuito.
Volumen y silenciación
El circuito de streaming ACX de IHV solo debe incluir elementos de volumen y silenciar si el controlador de streaming requiere un motor de audio. Al usar un motor de audio, las marcas de configuración deben establecerse como tales:
ACX_AUDIOENGINE_CONFIG audioEngineCfg;
ACX_AUDIOENGINE_CONFIG_INIT(&audioEngineCfg);
…
audioEngineCfg.Flags |= AcxAudioEngineConfigVolumeSecondary; // Use this control only if endpoint doesn't have one.
audioEngineCfg.MuteElement = muteElement;
audioEngineCfg.Flags |= AcxAudioEngineConfigMuteSecondary; // Use this control only if endpoint doesn't have one.
audioEngineCfg.PeakMeterElement = peakmeterElement;
audioEngineCfg.Flags |= AcxAudioEngineConfigPeakMeterSecondary; // Use this control only if endpoint doesn't have one.
Esto es necesario para permitir que los dispositivos de Bluetooth LE Audio utilicen los perfiles de control de volumen y micrófono definidos por Bluetooth SIG para los cambios de volumen y muteo de los dispositivos de audio de unidifusión.
Si el dispositivo remoto de audio Bluetooth LE no admite los servicios de control de volumen o micrófono, o el punto de conexión se crea para audio de difusión, entonces los elementos de volumen y silencio en el motor de audio servirán como medida de respaldo para manejar las solicitudes de cambio del sistema de audio. El sistema de audio de Windows controla los cambios en el volumen y silenciar. Si no hay un motor de audio y el dispositivo remoto no admite el volumen, o los servicios de micrófono, o el punto de conexión de audio es para la difusión de audio.
Coexistencia de bluetooth LE y audio clásico
Windows se asegurará de que solo el audio clásico o el audio LE esté activo para un dispositivo de audio Bluetooth emparejado que admita ambas tecnologías. Si el audio LE está activo, los DDIs de banda lateral para A2DP y HFP para el dispositivo remoto están deshabilitados y el circuito de perfil se crea para el punto de conexión de audio LE. Si el audio clásico está activo, los DDIs de banda lateral para A2DP y HFP para el dispositivo remoto están habilitados y el circuito de perfil no se crea para el punto de conexión de audio LE.
Administración de energía
Bluetooth LE Audio no tiene ningún requisito de administración de energía ni fluye fuera de lo que ya está definido por WDF.
Temas relacionados
- Extensiones de clase de audio de ACX
- Especificación de perfil de audio básico de Bluetooth
- Especificación de Bluetooth Core 5.3
- Especificación del Servicio de Capacidades de Audio Publicadas Bluetooth
- Especificación del servicio de control de secuencias de audio Bluetooth
- Números asignados por Bluetooth
- Directrices de omisión de Bluetooth HFP para controladores de audio
- Bluetooth HFP omite el streaming de audio