A partir de 27 de março de 2025, recomendamos usar android-latest-release
em vez de aosp-main
para criar e contribuir com o AOSP. Para mais informações, consulte Mudanças no AOSP.
Áudio de alta resolução
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
A versão do Android 10 inclui as seguintes
melhorias para áudio de alta resolução:
- Float:os codecs WAV e FLAC e os extratores foram atualizados para oferecer suporte a float
(mais de 24 bits de precisão sem perdas). Os efeitos de downmix e Virtualizer foram atualizados para flutuar.
A precisão atualizada é permitida pela MediaPlayer (NuPlayer).
- Alta frequência:os codecs WAV, FLAC e os extratores foram atualizados para oferecer suporte a 192 kHz.
Os efeitos padrão fornecidos pelo Android são testados para suporte a 192 kHz em frequências padrão.
As frequências padrão permitidas são 88,2 kHz, 96 kHz, 176,4 kHz e
192 kHz.
- Multicanal:os efeitos de reprodução padrão do Android são testados para suporte multicanal
em até oito canais.
- Tempo:as informações de tempo são incluídas em todo o framework
de áudio.
A partir do Android 9, as seguintes melhorias
não exigem implementação de parceiros:
- O número de faixas de saída de clientes simultâneas aumenta de 14
para 40, já que instâncias de clientes limitadas de
AudioTrack
foram um problema para
apps no Android 8.x.
- A memória máxima do cliente/servidor aumenta de 4 MB para 32 MB (dependendo
da memória total do dispositivo) para permitir mais faixas de áudio de alta resolução
simultâneas.
- O total de faixas mistas aumenta de 32 para 256 para evitar a contenção de recursos
entre apps e a interface do sistema.
Mudanças no efeito da saída
Consulte Efeitos
de áudio para conferir as mudanças na versão do Android 11.
Antes do lançamento do Android 9, o processamento da cadeia de efeitos
era implementado no formato de amostra estéreo int16. Isso tinha várias limitações:
- Todos os efeitos de saída forçaram a conversão de dados de áudio de ponto flutuante para
int16, causando perda de precisão.
- Os efeitos de saída foram rejeitados de sinks de saída com uma contagem de canais
maior que dois.
Na versão do Android 9, o pipeline de processamento
da cadeia de efeitos foi atualizado para oferecer suporte ao formato de ponto flutuante multicanal. Pontos importantes:
- Os efeitos de software do Android já foram migrados para o modo flutuante estéreo.
- Os efeitos legados têm suporte com adaptadores de formato, que convertem float
em int16 conforme necessário.
Implementar efeitos de saída
Uma implementação de referência para efeitos de saída está disponível em
frameworks/av/media/libeffects
.
Os parceiros que implementarem os próprios efeitos de saída personalizados precisam fazer o
seguinte para a versão do Android 10:
- Atualize os efeitos de saída para oferecer suporte ao formato de ponto flutuante multicanal:
- O suporte ao processamento Int16 não é mais necessário.
- Suporte a contagens de canais de saída de 2 a 8 (para compatibilidade futura,
considere contagens de 1 a 30).
- Suporte a contagens de canais de entrada que correspondem a contagens de canais de saída para
efeitos de inserção. Os efeitos auxiliares continuam a ter uma contagem de canal de entrada
de 1 (mono).
- Suporte a máscaras de posição de canal (canônicas) e máscaras de índice de canal
de
(1 << n) - 1
.
- Se você precisar continuar a oferecer suporte aos efeitos de saída legados do fornecedor e não puder
atualizá-los, verifique o código legado da seguinte maneira:
- Os efeitos de saída legados (inserção) precisam rejeitar
configurações sem suporte em
EFFECT_CMD_SET_CONFIG
.
- Verifique se o formato é int16.
- Verifique se as máscaras de canal de entrada e saída são estéreo.
- Se uma das verificações falhar, retorne
-EINVAL
.
- Os efeitos de saída legados (auxiliares) são configurados pelo AudioFlinger
com uma máscara de canal de entrada mono e potencialmente máscaras de canal de saída
multicanal, dependendo se o destino de saída é multicanal.
Elas precisam rejeitar configurações sem suporte em
EFFECT_CMD_SET_CONFIG
.
- Verifique se o formato é int16.
- Verifique se a máscara do canal de entrada é mono e a máscara do canal de saída é estéreo.
- Se uma das verificações falhar, retorne
-EINVAL
.
- Verificar o código legado. Não suponha que ele funciona.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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!"]]