A partir del 27 de marzo de 2025, te recomendamos que uses android-latest-release
en lugar de aosp-main
para compilar y contribuir a AOSP. Para obtener más información, consulta Cambios en AOSP.
Audio en alta resolución
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
La versión de Android 10 incluye las siguientes mejoras para el audio de alta resolución:
- Número de punto flotante: Los extractores y los códecs WAV y FLAC se actualizaron para admitir números de punto flotante (más de 24 bits de precisión sin pérdida). Los efectos de Downmix y Virtualizer se actualizaron para flotar.
MediaPlayer (NuPlayer) permite la precisión actualizada.
- Alta frecuencia: Los extractores y códecs WAV y FLAC se actualizaron para admitir 192 KHz.
Los efectos predeterminados que proporciona Android se prueban para la 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 predeterminados de Android se prueban para la compatibilidad con varios canales hasta ocho.
- Tiempo: La información de tiempo se incluye en todo el framework de audio.
A partir de Android 9, las siguientes mejoras no requieren ninguna implementación de socios:
- La cantidad de segmentos de salida de cliente simultáneos aumenta de 14 a 40, ya que las instancias de cliente limitadas de
AudioTrack
fueron un problema para las apps en Android 8.x.
- La memoria máxima del cliente y el servidor aumenta de 4 MB a 32 MB (según la memoria total del dispositivo) para permitir más pistas de audio de alta resolución simultáneas.
- La cantidad total de segmentos mixtos aumenta de 32 a 256 para evitar la contención de recursos entre las apps y la IU del sistema.
Cambios en el efecto de salida
Consulta Efectos de sonido para conocer los cambios de la versión de Android 11.
Antes del lanzamiento de Android 9, el procesamiento de cadenas de efectos se implementaba 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.
- Se rechazaron los efectos de salida de los sumideros de salida con un recuento de canales superior a dos.
En la versión de Android 9, se actualiza la canalización de procesamiento de cadenas de efectos para admitir el formato de número de punto flotante multicanal. Puntos clave:
- Los efectos de software de Android ya se migraron a números de punto flotante estéreo.
- Los efectos heredados son compatibles con adaptadores de formato, que convierten el tipo de datos float a int16 según sea necesario.
Implementa efectos de salida
Hay una implementación de referencia para los efectos de salida 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:
- Actualiza los efectos de salida para admitir el formato de número de punto flotante multicanal:
- Ya no se requiere compatibilidad con el procesamiento de Int16.
- Admite recuentos de canales de salida de 2 a 8 (para la compatibilidad futura, considera recuentos de 1 a 30).
- Admite recuentos de canales de entrada que coincidan con los recuentos de canales de salida para los efectos de inserción. Los efectos auxiliares siguen 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 debes seguir admitiendo los efectos de salida de proveedores heredados y no puedes actualizarlos, verifica el código heredado de la siguiente manera:
- Los efectos de salida heredados (insert) deben rechazar las configuraciones no admitidas en
EFFECT_CMD_SET_CONFIG
.
- Verifica que el formato sea int16.
- Comprueba que las máscaras de canales de entrada y salida sean estéreo.
- Si alguna de las verificaciones falla, muestra
-EINVAL
.
- AudioFlinger configura los efectos de salida heredados (auxiliares) con una máscara de canal de entrada mono y, potencialmente, máscaras de canal de salida multicanal, según si el sumidero de salida es multicanal.
Deben rechazar las configuraciones no admitidas en
EFFECT_CMD_SET_CONFIG
.
- Verifica que el formato sea int16.
- Verifica 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 verificaciones falla, muestra
-EINVAL
.
- Verifica el código heredado. No des por sentado que funciona.
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-07-27 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-07-27 (UTC)"],[],[],null,["# High-resolution audio\n\nThe Android 10 release includes the following\nimprovements for high-resolution audio:\n\n- **Float:** WAV, FLAC codecs, and extractors are updated to support float (24+ bits of lossless precision). Downmix and Virtualizer effects are updated to float. Updated precision is allowed by MediaPlayer (NuPlayer).\n- **High-frequency:** WAV, FLAC codecs, and extractors are updated to support 192 kHz. The default Android supplied effects are tested for 192 kHz support at standard frequencies. The standard frequencies permitted are 88.2 kHz, 96 kHz, 176.4 kHz, and 192 kHz.\n- **Multichannel:** Default Android playback effects are tested for multichannel support to eight channels.\n- **Timing:** Timing information is included throughout the audio framework.\n\nStarting in Android 9, the following improvements\ndon't require any partner implementation:\n\n- The number of simultaneous client output tracks increases from 14 to 40, as limited client instances of `AudioTrack` have been an issue for apps in Android 8.x.\n- Maximum client/server memory increases from 4 MB to 32 MB (depending on total device memory) to allow more simultaneous high-resolution audio tracks.\n- Total mixed tracks increases from 32 to 256 to prevent resource contention between apps and the System UI.\n\nOutput effect changes\n---------------------\n\nSee [Audio\neffects](/docs/core/audio/audio-effects) for Android 11 release changes.\n\nPrior to the Android 9 release, effect chain processing\nwas implemented in stereo int16 sample format. This had several limitations:\n\n- All output effects forced conversion from floating point audio data to int16, causing loss of precision.\n- Output effects were rejected from output sinks with a channel count greater than two.\n\nIn the Android 9 release, the effect chain processing\npipeline is upgraded to support the multichannel float format. Key points:\n\n- Android software effects are already migrated to stereo float.\n- Legacy effects are supported with format adapters, which convert float to int16 as needed.\n\nImplement output effects\n------------------------\n\nA reference implementation for output effects is available under\n`frameworks/av/media/libeffects`.\n\nPartners implementing their own custom output effects should do the\nfollowing for the Android 10 release:\n\n- Update output effects to support the multichannel float format:\n - Int16 processing support is no longer required.\n - Support output channel counts from 2--8 (for future compatibility consider counts from 1--30).\n - Support input channel counts matching output channel counts for insert effects. Auxiliary effects continue to see an input channel count of 1 (mono).\n - Support both channel position masks (canonical) and channel index masks of `(1 \u003c\u003c n) - 1`.\n- If you must continue to support legacy vendor output effects and can't update them, then verify legacy code as follows:\n - Legacy output (insert) effects **must reject** unsupported configurations in `EFFECT_CMD_SET_CONFIG`.\n - Check that the format is int16.\n - Check that the input and output channel masks are stereo.\n - If either check fails, return `-EINVAL`.\n - Legacy output (auxiliary) effects are configured by AudioFlinger with a mono input channel mask and potentially multichannel output channel masks, depending on whether the output sink is multichannel. They **must reject** unsupported configurations in `\n EFFECT_CMD_SET_CONFIG`.\n - Check that the format is int16.\n - Check that the input channel mask is mono and the output channel mask is stereo.\n - If either check fails, return `-EINVAL`.\n - Verify legacy code. Don't assume that it works!"]]