Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Audio de alta resolución

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

  • Float: WAV, FLAC códecs y extractores se actualizan para el apoyo de flotador (24+ bits de precisión sin pérdida). Los efectos Downmix y Virtualizer se actualizan para flotar. MediaPlayer (NuPlayer) permite la precisión actualizada.
  • De alta frecuencia: WAV, FLAC códecs y extractores se actualizan para apoyar 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: efectos de reproducción por defecto de Android se analizan para soporte de múltiples canales a ocho canales.
  • Tiempo: información de temporización está incluido 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 simultáneas cliente aumenta de 14 a 40, como instancias de cliente limitadas de AudioTrack han sido un problema para aplicaciones en 8.x. Android
  • 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

Ver efectos de audio para Android 11 cambios de liberación.

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 recuento 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 bajo los 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).
    • Apoyar ambas máscaras de posición canal (canónicos) y máscaras í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:
    • Salida Legacy (inserto) efectos deben rechazar configuraciones no compatibles 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 cualquiera de comprobación falla, devolver -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. Ellos deben rechazar configuraciones no compatibles 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 cualquiera de comprobación falla, devolver -EINVAL .
    • Verifique el código heredado. ¡No asuma que funciona!