Android 13 presenta compatibilidad con el audio espacial a través de APIs que permiten a los desarrolladores de apps descubrir si la combinación actual de implementación del teléfono, auriculares conectados y configuración del usuario permite la reproducción de contenido de audio multicanal de forma envolvente.
Los OEM pueden proporcionar un efecto de audio espacial con soporte para monitoreo de cabeza con el nivel requerido de rendimiento y latencia, usando la nueva arquitectura de canalización de audio y la integración del framework del sensor. El protocolo HID especifica cómo conectar un dispositivo de seguimiento de cabeza a través de Bluetooth y cómo ponerlo a disposición como un dispositivo HID a través del framework de sensores de Android. Consulta Audio espacial y monitoreo de cabeza para obtener más requisitos y validación.
Los lineamientos de esta página se aplican a una solución de audio espacial que adopta las nuevas APIs de audio espacial y la arquitectura de audio con un teléfono Android que ejecuta Android 13 y versiones posteriores, y auriculares compatibles con sensor de monitoreo de cabeza.
Lineamientos para la implementación de modos de audio espacial dinámico y estático
El audio espacial estático no requiere monitoreo de cabeza, por lo que no se requiere una funcionalidad específica en los auriculares. Todos los auriculares inalámbricos y con cable pueden admitir audio espacial estático.
Implementación con la API
Los OEMs DEBEN implementar la Spatializer
clase que se introdujo en Android 12. La implementación debe pasar las pruebas de CTS
introducidas para la
Spatializer
clase.
Una implementación sólida de la API garantiza que los desarrolladores de apps, en particular los servicios de transmisión de contenido multimedia, puedan confiar en un comportamiento coherente en todo el ecosistema y elegir el mejor contenido según las capacidades del dispositivo, el contexto de renderización actual y las opciones del usuario.
Interfaz de usuario
Después de implementar la Spatializer
clase, valida que tu IU tenga el siguiente comportamiento:
Cuando se vinculan los auriculares compatibles con audio espacial, la configuración del dispositivo Bluetooth para estos auriculares muestra un botón de activación Audio espacial:
Figura 1: Configuración de audio espacial
La configuración está disponible cuando los auriculares están desconectados.
El estado predeterminado para el audio espacial después de vincular los auriculares por primera vez se establece en habilitado.
El estado seleccionado por el usuario, ya sea habilitado o inhabilitado, persiste en el reinicio del teléfono o en la desvinculación y vinculación de los auriculares.
Comportamiento funcional
Formatos de audio
El efecto espacializador DEBE renderizar los siguientes formatos de audio cuando el audio espacial está habilitado y el dispositivo de renderización es un auricular Bluetooth o con cable:
- AAC, 5.1 canales
- PCM sin procesar, 5.1 canales
Para una mejor experiencia del usuario, te recomendamos que admitas las siguientes configuraciones de formatos o canales:
- Dolby Digital Plus
- 5.1.2, 7.1, 7.1.2, 7.1.4 canales
Reproducción de contenido estéreo
El contenido estéreo no se debe renderizar a través del motor de efectos espacializador, incluso si el audio espacial está habilitado. Si una implementación permite la espacialización de contenido estéreo, debe presentar una IU personalizada que permita al usuario activar o desactivar esta función con facilidad. Cuando el audio espacial está habilitado, debe ser posible realizar la transición entre la reproducción de contenido multicanal espacializado y contenido estéreo no espacializado sin requerir cambios en la configuración del usuario ni volver a conectar o configurar los auriculares. La transición entre el contenido de audio espacial y el contenido estéreo debe ocurrir con una interrupción mínima del audio.
Transiciones de casos de uso y simultaneidad
Maneja los casos de uso especiales de la siguiente manera:
- Las notificaciones deben mezclarse con el contenido de audio espacial de la misma manera que con el contenido de audio no espacial.
- Se debe permitir que los tonos de llamada se mezclen con el contenido de audio espacial. Sin embargo, de forma predeterminada, el mecanismo de foco de audio pausa el contenido de audio espacial cuando hay un tono de llamada.
- Cuando contestes o realices una llamada telefónica o una videoconferencia, se debe pausar la reproducción de audio espacial. La reproducción de audio espacial debe reanudarse con la misma configuración de audio espacial cuando finalice la llamada. La reconfiguración de una ruta de audio para cambiar del modo de audio espacial al modo de conversación debe ocurrir de forma rápida y sin problemas para que no afecte la experiencia de la llamada.
Renderización a través de bocinas
No se requiere compatibilidad con la espacialización de audio a través de bocinas o modo transaural.
Lineamientos para la implementación del monitoreo de cabeza
En esta sección, se aborda el audio espacial dinámico, que tiene requisitos específicos para los auriculares.
Interfaz de usuario
Tras la implementación y la vinculación de los auriculares compatibles con audio espacial, valida que tu IU tenga el siguiente comportamiento:
En la configuración del dispositivo Bluetooth, cuando se habilita el parámetro de configuración Audio espacial para los auriculares, aparece un parámetro de configuración de Monitoreo de cabeza en Audio espacial:
Figura 2: Configuración de audio espacial y monitoreo de cabeza
El parámetro de configuración de monitoreo de cabeza NO es visible cuando el audio espacial está inhabilitado.
El estado predeterminado para el monitoreo de cabeza después de vincular los auriculares por primera vez se establece en habilitado.
El estado seleccionado por el usuario, ya sea habilitado o inhabilitado, debe persistir en el reinicio del teléfono o en la desvinculación y vinculación de los auriculares.
Comportamiento funcional
Informes de la postura de la cabeza
- La información de la postura de la cabeza, en coordenadas x, y y z, que se envía desde los auriculares al dispositivo Android, debe reflejar los movimientos de la cabeza del usuario de forma rápida y precisa.
- Los informes de la postura de la cabeza a través del vínculo de Bluetooth deben seguir el protocolo definido a través de HID.
- Los auriculares deben enviar la información de monitoreo de cabeza al teléfono Android solo cuando el usuario habilita Monitoreo de cabeza en la IU de configuración del dispositivo Bluetooth.
Rendimiento
Latencia
La latencia del monitoreo de cabeza se define como el tiempo que transcurre desde que la unidad de medición inercial (IMU) captura el movimiento de la cabeza hasta que los transductores de los auriculares detectan el cambio en el sonido causado por este movimiento. La latencia del monitoreo de cabeza no debe exceder los 150 ms.
Tasa de informes de la postura de la cabeza
Cuando el monitoreo de cabeza está activo, los auriculares deben informar la postura de la cabeza de forma periódica recomendada de aproximadamente 20 ms. Para evitar activar la lógica de detección de entrada obsoleta en el teléfono durante una fluctuación de transmisión de Bluetooth, el tiempo máximo entre dos actualizaciones no debe exceder los 40 ms.
Optimización de energía
Para optimizar la energía, te recomendamos que la implementación use los mecanismos de cambio de códec de Bluetooth y selección de modo de latencia que proporcionan las interfaces HAL de audio y HAL de audio de Bluetooth.
Las implementaciones de AOSP del framework de audio y la pila de Bluetooth ya admiten los indicadores para controlar el cambio de códec. Si la implementación del OEM usa el HAL de audio principal para el audio de Bluetooth, conocido como modo de descarga de códec, el OEM debe asegurarse de que el HAL de audio retransmita esos indicadores entre el HAL de audio y la pila de Bluetooth.
Cambio de códec
Cuando el audio espacial dinámico y el monitoreo de cabeza están activados, usa un códec de baja latencia, como Opus. Cuando reproduzcas contenido de audio no espacial, usa un códec de bajo consumo, como la codificación de audio avanzada (AAC).
Sigue estas reglas durante el cambio de códec:
- Haz un seguimiento solo de la actividad en los siguientes flujos de salida de HAL de audio:
- Salida de espacializador dedicada
- Flujos específicos de contenido multimedia, como la reproducción de descarga comprimida o de búfer profundo
Cuando todos los flujos relevantes estén inactivos y comience el flujo espacializador, inicia el flujo de Bluetooth con
isLowLatencyconfigurado comotruepara especificar un códec de baja latencia.Cuando todos los flujos relevantes estén inactivos y comience un flujo de contenido multimedia, inicia el flujo de Bluetooth con
isLowLatencyconfigurado comofalsepara especificar un códec de bajo consumo.Si un flujo de contenido multimedia está activo y comienza el flujo espacializador, reinicia el flujo de Bluetooth con
isLowLatencyconfigurado comotrue.
En el lado de los auriculares, estos deben admitir los decodificadores de baja latencia y bajo consumo, y deben implementar el protocolo de selección de códec estándar.
Ajuste del modo de latencia
El ajuste del modo de latencia se produce cuando se selecciona el códec de baja latencia.
Según si el monitoreo de cabeza está activado o desactivado, el ajuste del modo de latencia usa los mecanismos disponibles para reducir o aumentar la latencia y alcanzar el mejor compromiso entre la latencia, la energía y la calidad de audio. Cuando el audio espacial está habilitado y el monitoreo de cabeza también, se elige el modo de baja latencia. Cuando el audio espacial está habilitado y el monitoreo de cabeza está inhabilitado, se selecciona el modo de latencia libre. El ajuste de latencia proporciona un ahorro de energía significativo y una mayor solidez del vínculo de audio de Bluetooth cuando solo se solicita audio espacial estático. El mecanismo de ajuste de latencia más común es la reducción o extensión del tamaño del búfer de fluctuación en los auriculares Bluetooth.
Consulta Monitoreo de cabeza a través de audio LE para obtener ajustes del modo de latencia para audio LE.