Descripción general

El sistema operativo Android Automotive (AAOS) se basa en la pila de audio central de Android para admitir casos de uso para operar como sistema de información y entretenimiento en un vehículo. AAOS es responsable de los sonidos de información y entretenimiento (es decir, medios, navegación y comunicaciones), pero no es directamente responsable de los timbres y advertencias que tienen requisitos estrictos de disponibilidad y sincronización.

Si bien AAOS proporciona señales y mecanismos para ayudar al vehículo a gestionar el audio, al final depende del vehículo decidir qué sonidos se deben reproducir para el conductor y los pasajeros, garantizando que los sonidos críticos para la seguridad y los sonidos regulatorios se escuchen correctamente sin interrupción.

Dado que AAOS aprovecha la pila de audio de Android, las aplicaciones de terceros que reproducen audio no necesitan hacer nada diferente a lo que harían en los teléfonos. AAOS administra automáticamente el enrutamiento de audio de la aplicación como se describe en Configuración de la política de audio .

A medida que Android administra la experiencia multimedia del vehículo, las fuentes multimedia externas, como el sintonizador de radio, deben estar representadas por aplicaciones que puedan manejar el enfoque de audio y los eventos clave multimedia para la fuente.

Sonidos y transmisiones de Android

Los sistemas de audio automotrices manejan los siguientes sonidos y transmisiones:

image

Figura 1. Diagrama de arquitectura centrada en flujos.

Android administra los sonidos provenientes de las aplicaciones de Android, controla esas aplicaciones y enruta sus sonidos a dispositivos de salida en el HAL según el tipo de sonido:

  • Las transmisiones lógicas , conocidas como fuentes en la nomenclatura principal de audio, están etiquetadas con atributos de audio .

  • Las transmisiones físicas , conocidas como dispositivos en la nomenclatura básica de audio, no tienen información de contexto después de la mezcla.

Para mayor confiabilidad, los sonidos externos (procedentes de fuentes independientes, como campanas de advertencia del cinturón de seguridad) se administran fuera de Android, debajo de HAL o incluso en hardware separado. Los implementadores del sistema deben proporcionar un mezclador que acepte uno o más flujos de entrada de sonido desde Android y luego combine esos flujos de manera adecuada con las fuentes de sonido externas requeridas por el vehículo. Android Control HAL proporciona un mecanismo diferente para que los sonidos generados fuera de Android se comuniquen con Android:

  • Solicitud de enfoque de audio
  • Limitaciones de ganancia o volumen
  • Cambios de ganancia y volumen.

La implementación de audio HAL y el mezclador externo son responsables de garantizar que se escuchen los sonidos externos críticos para la seguridad y de mezclar las transmisiones proporcionadas por Android y enrutarlas a los parlantes adecuados.

sonidos de android

Las aplicaciones pueden tener uno o más reproductores que interactúan a través de las API estándar de Android (por ejemplo, AudioManager para control de enfoque o MediaPlayer para transmisión) para emitir uno o más flujos lógicos de datos de audio. Estos datos pueden ser monocanal mono o envolvente 7.1, pero se enrutan y tratan como una única fuente. La transmisión de la aplicación está asociada con AudioAttributes que le dan al sistema sugerencias sobre cómo se debe expresar el audio.

Los flujos lógicos se envían a través de AudioService y se enrutan a uno (y solo uno) de los flujos de salida físicos disponibles, cada uno de los cuales es la salida de un mezclador dentro de AudioFlinger. Una vez que los atributos de audio se hayan mezclado en una transmisión física, ya no estarán disponibles.

Luego, cada transmisión física se entrega al Audio HAL para su renderización en el hardware. En las aplicaciones automotrices, el hardware de renderizado puede ser códecs locales (similares a los dispositivos móviles) o un procesador remoto a través de la red física del vehículo. De cualquier manera, el trabajo de la implementación de Audio HAL es entregar los datos de muestra reales y hacer que se vuelvan audibles.

Corrientes externas

Las transmisiones de sonido que no deberían enrutarse a través de Android (por razones de certificación o tiempo) pueden enviarse directamente al mezclador externo. A partir de Android 11, HAL ahora puede solicitar enfoque para estos sonidos externos para informar a Android de modo que pueda tomar las acciones apropiadas, como pausar medios o evitar que otros obtengan enfoque.

Si las transmisiones externas son fuentes multimedia que deben interactuar con el entorno de sonido que genera Android (por ejemplo, detener la reproducción de MP3 cuando se enciende un sintonizador externo), esas transmisiones externas deben estar representadas por una aplicación de Android. Una aplicación de este tipo solicitaría el enfoque de audio en nombre de la fuente de medios en lugar de HAL, y respondería a las notificaciones de enfoque iniciando y deteniendo la fuente externa según sea necesario para ajustarse a la política de enfoque de Android.

La aplicación también es responsable de manejar eventos multimedia clave, como reproducción y pausa. Un mecanismo sugerido para controlar dichos dispositivos externos es HwAudioSource . Para obtener más información, consulte Conectar un dispositivo de entrada en AAOS .

Dispositivos de salida

En el nivel Audio HAL, el tipo de dispositivo AUDIO_DEVICE_OUT_BUS proporciona un dispositivo de salida genérico para usar en sistemas de audio de vehículos. El dispositivo de bus admite puertos direccionables (donde cada puerto es el punto final de un flujo físico) y se espera que sea el único tipo de dispositivo de salida admitido en un vehículo.

Una implementación de sistema puede usar un puerto de bus para todos los sonidos de Android, en cuyo caso Android mezcla todo y lo entrega como una sola transmisión. Alternativamente, HAL puede proporcionar un puerto de bus para cada CarAudioContext para permitir la entrega simultánea de cualquier tipo de sonido. Esto hace posible que la implementación HAL mezcle y atenúe los diferentes sonidos como desee.

La asignación de contextos de audio a dispositivos de salida se realiza a través del archivo car_audio_configuration.xml . Para obtener más información, consulte Configuración de la política de audio .