Android 13 introduce la compatibilidad con el audio espacial, ya que proporciona APIs que permiten a los desarrolladores de apps descubrir si la combinación actual de implementación de teléfono, auriculares conectados y configuración del usuario permite la reproducción de contenido de audio multicanal de manera envolvente.
Los OEMs pueden proporcionar un efecto de audio espacial que admita el seguimiento de la cabeza con el nivel de rendimiento y latencia requeridos, con 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 ponerlo a disposición como dispositivo HID a través del framework de sensores de Android. Consulta Audio espacial y seguimiento de la 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 el sensor de seguimiento de la cabeza.
Lineamientos para la implementación de modos de audio espacial dinámico y estático
El audio espacial estático no requiere el seguimiento de la 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 de la API
Los OEMs DEBEN implementar la clase Spatializer
que se introdujo en Android 12. La implementación debe aprobar las pruebas de CTS que se introdujeron para la clase Spatializer
.
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 elecciones del usuario.
Interfaz de usuario
Después de implementar la clase Spatializer
, verifica que tu IU tenga el siguiente comportamiento:
Cuando se vinculan los auriculares compatibles con audio espacial, la configuración del dispositivo Bluetooth de 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 del audio espacial después de vincular los auriculares inicialmente está configurado como habilitado.
El estado que selecciona el usuario, ya sea habilitado o inhabilitado, persiste después de reiniciar el teléfono o desvincular y volver a vincular los auriculares.
Comportamiento funcional
Formatos de audio
Los siguientes formatos de audio DEBEN renderizarse con el efecto espacial cuando el audio espacial está habilitado y el dispositivo de renderización es un auricular con cable o Bluetooth:
- AAC, 5.1 canales
- PCM sin procesar, 5.1 canales
Para mejorar la experiencia del usuario, te recomendamos que admitas los siguientes formatos o parámetros de configuración de canales:
- Dolby Digital Plus
- Canales 5.1.2, 7.1, 7.1.2 y 7.1.4
Reproducción de contenido estéreo
El contenido estéreo no debe procesarse a través del motor de efecto espacial, 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 le 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 el contenido estéreo no espacializado sin necesidad de realizar 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 de audio mínima.
Transiciones y simultaneidad de casos de uso
Controla casos de uso especiales de la siguiente manera:
- Las notificaciones deben mezclarse con el contenido de audio espacial de la misma manera que lo hacen con el contenido de audio no espacial.
- Se debe permitir que los tonos de llamada se mezclen con 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.
- Cuando respondes o realizas 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 realizarse de forma rápida y sin problemas para que no afecte la experiencia de la llamada.
Renderización en bocinas
No se requiere la compatibilidad con la espacialización de audio en bocinas ni el modo transaurales.
Lineamientos para la implementación del seguimiento de la cabeza
En esta sección, se enfoca en el audio espacial dinámico, que tiene requisitos específicos para auriculares.
Interfaz de usuario
Después de implementar y vincular los auriculares compatibles con audio espacial, valida que la IU tenga el siguiente comportamiento:
En la configuración del dispositivo Bluetooth, cuando el parámetro de configuración Audio espacial para los auriculares está habilitado, aparece el parámetro de configuración Seguimiento de cabeza en Audio espacial:
Figura 2: Parámetro de configuración de audio espacial y seguimiento de cabeza.
El parámetro de configuración de seguimiento de cabeza NO es visible cuando el audio espacial está inhabilitado.
El estado predeterminado del seguimiento de cabeza después de vincular por primera vez los auriculares se establece como habilitado.
El estado que seleccionó el usuario, ya sea habilitado o inhabilitado, debe persistir después de reiniciar el teléfono o desvincular y volver a vincular los auriculares.
Comportamiento funcional
Informes de postura de la cabeza
- La información de la posición 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 con rapidez y precisión.
- Los informes de posición de la cabeza a través de la vinculación Bluetooth deben seguir el protocolo definido en HID.
- Los auriculares deben enviar la información de seguimiento de la cabeza al teléfono Android solo cuando el usuario habilita Seguimiento de la cabeza en la IU de configuración del dispositivo Bluetooth.
Rendimiento
Latencia
La latencia de seguimiento de la cabeza se define como el tiempo que transcurre desde el movimiento de la cabeza capturado por la unidad de medición inercial (IMU) hasta la detección del cambio de sonido que causa este movimiento por parte de los transductores de los auriculares. La latencia del seguimiento de cabeza no debe superar los 150 ms.
Tasa de informes de la postura de la cabeza
Cuando el seguimiento de la cabeza está activo, los auriculares deben informar la posición de la cabeza de forma periódica, aproximadamente, cada 20 ms. Para evitar activar la lógica de detección de entradas inactivas en el teléfono durante un jitter 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, recomendamos que la implementación use los mecanismos de conmutación de códecs Bluetooth y de selección de modo de latencia que proporcionan las interfaces de HAL de audio y HAL de audio 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 la HAL de audio principal para audio Bluetooth, conocido como modo de descarga de códec, el OEM debe asegurarse de que la HAL de audio retransmita esas señales entre la HAL de audio y la pila de Bluetooth.
Conmutación de códecs
Cuando el audio espacial dinámico y el seguimiento 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 baja potencia, como Advanced Audio Coding (AAC).
Sigue estas reglas durante el cambio de códec:
- Realiza un seguimiento solo de la actividad en los siguientes flujos de salida de HAL de audio:
- Salida del espacializador dedicado
- Transmisiones específicas de contenido multimedia, como la reproducción con búfer profundo o descarga comprimida
Cuando todas las transmisiones relevantes estén inactivas y comience la transmisión del espacializador, inicia la transmisión de Bluetooth con
isLowLatency
establecido entrue
para especificar un códec de baja latencia.Cuando todas las transmisiones relevantes estén inactivas y comience una transmisión multimedia, inicia la transmisión de Bluetooth con
isLowLatency
establecido enfalse
para especificar un códec de baja potencia.Si hay una transmisión multimedia activa y se inicia la transmisión del espacializador, reinicia la transmisión de Bluetooth con
isLowLatency
configurado entrue
.
En el caso de los auriculares, estos deben admitir decodificadores de baja latencia y baja potencia, 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 seguimiento de la 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 equilibrio entre latencia, potencia y calidad de audio. Cuando se habilita el audio espacial y el seguimiento de la cabeza, se elige el modo de baja latencia. Cuando se habilita el audio espacial y se inhabilita el seguimiento de cabeza, se selecciona el modo de latencia libre. El ajuste de latencia proporciona ahorros de energía significativos y una mayor robustez del vínculo de audio 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 Jitter en los auriculares Bluetooth.
Consulta Seguimiento de cabeza con audio LE para ver los ajustes del modo de latencia de audio LE.