À partir du 27 mars 2025, nous vous recommandons d'utiliser android-latest-release
au lieu de aosp-main
pour créer et contribuer à AOSP. Pour en savoir plus, consultez la section Modifications apportées à AOSP.
Audio haute résolution
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
La version Android 10 inclut les améliorations suivantes pour l'audio haute résolution:
- Float:les codecs et extracteurs WAV et FLAC sont mis à jour pour prendre en charge le format float (plus de 24 bits de précision sans perte). Les effets de downmix et de virtualisation sont mis à jour pour flotter.
MediaPlayer (NuPlayer) autorise la précision mise à jour.
- Haute fréquence:les codecs et extracteurs WAV et FLAC sont mis à jour pour prendre en charge la fréquence de 192 kHz.
La compatibilité des effets fournis par défaut par Android avec la fréquence de 192 kHz est testée aux fréquences standards.
Les fréquences standards autorisées sont 88,2 kHz, 96 kHz, 176,4 kHz et 192 kHz.
- Multicanal:les effets de lecture Android par défaut sont testés pour la compatibilité multicanal jusqu'à huit canaux.
- Timing:les informations de timing sont incluses dans tout le framework audio.
À partir d'Android 9, les améliorations suivantes ne nécessitent aucune implémentation par les partenaires:
- Le nombre de canaux de sortie client simultanés passe de 14 à 40, car les instances client limitées de
AudioTrack
ont posé problème pour les applications sous Android 8.x.
- La mémoire client/serveur maximale passe de 4 Mo à 32 Mo (selon la mémoire totale de l'appareil) pour permettre d'utiliser davantage de pistes audio haute résolution simultanées.
- Le nombre total de canaux mixtes passe de 32 à 256 pour éviter les conflits de ressources entre les applications et l'UI du système.
Modifications de l'effet de sortie
Consultez la section Effets audio pour connaître les modifications apportées à la version Android 11.
Avant la version Android 9, le traitement de la chaîne d'effets était implémenté au format d'échantillon stéréo int16. Ce système présentait plusieurs limites:
- Tous les effets de sortie forcent la conversion des données audio à virgule flottante en int16, ce qui entraîne une perte de précision.
- Les effets de sortie ont été rejetés des puits de sortie avec un nombre de canaux supérieur à deux.
Dans la version Android 9, le pipeline de traitement de la chaîne d'effets est mis à niveau pour prendre en charge le format float multicanal. Points essentiels :
- Les effets logiciels Android sont déjà migrés vers le format float stéréo.
- Les anciens effets sont compatibles avec les adaptateurs de format, qui convertissent les nombres à virgule flottante en int16 si nécessaire.
Implémenter des effets de sortie
Une implémentation de référence pour les effets de sortie est disponible sous frameworks/av/media/libeffects
.
Les partenaires qui implémentent leurs propres effets de sortie personnalisés doivent procéder comme suit pour la version Android 10:
- Mettez à jour les effets de sortie pour prendre en charge le format float multicanal :
- La prise en charge du traitement Int16 n'est plus requise.
- Prise en charge des nombres de canaux de sortie compris entre 2 et 8 (pour une compatibilité future, envisagez des nombres compris entre 1 et 30).
- Prise en charge des nombres de canaux d'entrée correspondant aux nombres de canaux de sortie pour les effets d'insertion. Les effets auxiliaires continuent de voir un nombre de canaux d'entrée de 1 (mono).
- Prise en charge des masques de position de canal (canonique) et des masques d'indice de canal de
(1 << n) - 1
.
- Si vous devez continuer à prendre en charge les anciens effets de sortie du fournisseur et que vous ne pouvez pas les mettre à jour, vérifiez le code ancien comme suit :
- Les anciens effets de sortie (insertion) doivent refuser les configurations non compatibles dans
EFFECT_CMD_SET_CONFIG
.
- Vérifiez que le format est int16.
- Vérifiez que les masques des canaux d'entrée et de sortie sont stéréo.
- Si l'une des vérifications échoue, renvoyez
-EINVAL
.
- Les anciens effets de sortie (auxiliaires) sont configurés par AudioFlinger avec un masque de canal d'entrée mono et des masques de canal de sortie potentiellement multicanaux, selon que le collecteur de sortie est multicanal.
Elles doivent refuser les configurations non compatibles dans
EFFECT_CMD_SET_CONFIG
.
- Vérifiez que le format est int16.
- Vérifiez que le masque de canal d'entrée est mono et que le masque de canal de sortie est stéréo.
- Si l'une des vérifications échoue, renvoyez
-EINVAL
.
- Vérifiez le code ancien. Ne partez pas du principe que cela fonctionne.
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 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!"]]