Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Audio de alta resolución

La versión de Android 10 incluye las siguientes mejoras para audio de alta resolución:

  • Float: los códecs WAV, FLAC y los extractores se actualizan para admitir float (más de 24 bits de precisión sin pérdidas). Los efectos Downmix y Virtualizer se actualizan para flotar. MediaPlayer (NuPlayer) permite la precisión actualizada.
  • Alta frecuencia: los códecs WAV, FLAC y los extractores se actualizaron para admitir 192 kHz. Los efectos predeterminados suministrados por Android se prueban para compatibilidad con 192 kHz en frecuencias estándar. Las frecuencias estándar permitidas son 88,2 kHz, 96 kHz, 176,4 kHz y 192 kHz.
  • Multicanal: los efectos de reproducción de Android predeterminados se prueban para compatibilidad multicanal en ocho canales.
  • Sincronización: la información de sincronización se incluye en todo el marco de audio.

A partir de Android 9, las siguientes mejoras no requieren la implementación de ningún socio:

  • El número de pistas de salida de cliente simultáneas aumenta de 14 a 40, ya que las instancias de cliente limitadas de AudioTrack han sido un problema para las aplicaciones en Android 8.x.
  • La memoria máxima de cliente / servidor aumenta de 4 MB a 32 MB (dependiendo de la memoria total del dispositivo) para permitir más pistas de audio de alta resolución simultáneas.
  • El total de pistas mixtas aumenta de 32 a 256 para evitar la contención de recursos entre las aplicaciones y la interfaz de usuario del sistema.

Cambios en el efecto de salida

Consulte Cambios en la versión de Efectos de audio para Android 11.

Antes del lanzamiento de Android 9, el procesamiento de la cadena de efectos se implementó en formato de muestra estéreo int16. Esto tenía varias limitaciones:

  • Todos los efectos de salida forzaron la conversión de datos de audio de punto flotante a int16, lo que provocó una pérdida de precisión.
  • Los efectos de salida se rechazaron de los sumideros de salida con un número de canales superior a dos.

En la versión de Android 9, la canalización de procesamiento de la cadena de efectos se actualiza para admitir el formato flotante multicanal. Puntos clave:

  • Los efectos del software de Android ya están migrados a flotación estéreo.
  • Los efectos heredados son compatibles con adaptadores de formato, que convierten float en int16 según sea necesario.

Implementar efectos de salida

Una implementación de referencia para efectos de salida está disponible en frameworks/av/media/libeffects .

Los socios que implementen sus propios efectos de salida personalizados deben hacer lo siguiente para la versión de Android 10:

  • Actualice los efectos de salida para admitir el formato flotante multicanal:
    • El soporte de procesamiento de Int16 ya no es necesario.
    • Admite recuentos de canales de salida de 2 a 8 (para compatibilidad futura, considere los recuentos de 1 a 30).
    • Admite recuentos de canales de entrada que coinciden con los recuentos de canales de salida para efectos de inserción. Los efectos auxiliares continúan viendo un recuento de canales de entrada de 1 (mono).
    • Admite máscaras de posición de canal (canónicas) y máscaras de índice de canal de (1 << n) - 1 .
  • Si debe continuar admitiendo efectos de salida de proveedores heredados y no puede actualizarlos, verifique el código heredado de la siguiente manera:
    • Los efectos de salida heredados (inserción) deben rechazar configuraciones no EFFECT_CMD_SET_CONFIG en EFFECT_CMD_SET_CONFIG .
      • Compruebe que el formato sea int16.
      • Compruebe que las máscaras de los canales de entrada y salida sean estéreo.
      • Si alguna de las comprobaciones falla, devuelva -EINVAL .
    • AudioFlinger configura los efectos de salida heredados (auxiliares) con una máscara de canal de entrada mono y máscaras de canal de salida potencialmente multicanal, dependiendo de si el sumidero de salida es multicanal. Deben rechazar configuraciones no EFFECT_CMD_SET_CONFIG en EFFECT_CMD_SET_CONFIG .
      • Compruebe que el formato sea int16.
      • Compruebe que la máscara del canal de entrada sea mono y que la máscara del canal de salida sea estéreo.
      • Si alguna de las comprobaciones falla, devuelva -EINVAL .
    • Verifique el código heredado. ¡No asuma que funciona!