O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Áudio de alta resolução

A versão do Android 10 inclui as seguintes melhorias para áudio de alta resolução:

  • Float: WAV, FLAC codecs, e extratores são atualizados para suporte float (24+ bits de precisão lossless). Os efeitos Downmix e Virtualizer são atualizados para flutuar. A precisão atualizada é permitida pelo MediaPlayer (NuPlayer).
  • De alta frequência: WAV, FLAC codecs, e extratores são atualizado para suportar 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: efeitos de reprodução Android padrão são testados para suporte multicanal de oito canais.
  • Timing: informação de temporização está incluído todo o quadro de áudio.

A partir do Android 9, as seguintes melhorias não exigem implementação de parceiro:

  • O número de simultâneos faixas de saída cliente aumenta de 14 para 40, como instâncias de cliente limitadas de AudioTrack ter sido um problema para aplicativos em 8.x. Android
  • 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 misturadas aumenta de 32 para 256 para evitar contenção de recursos entre aplicativos e a IU do sistema.

Alterações de efeito de saída

Veja Efeitos de Áudio para Android 11 alterações libertação.

Antes do lançamento do Android 9, o processamento da cadeia de efeitos era implementado no formato de amostra int16 estéreo. 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 coletores de saída com uma contagem de canal maior que dois.

Na versão do Android 9, o pipeline de processamento da cadeia de efeitos é atualizado para suportar o formato float multicanal. Pontos chave:

  • Os efeitos do software Android já foram migrados para o float estéreo.
  • Os efeitos legados são suportados com adaptadores de formato, que convertem float em int16 conforme necessário.

Implementando efeitos de saída

Uma implementação de referência para efeitos de saída está disponível sob frameworks/av/media/libeffects .

Os parceiros que implementam seus próprios efeitos de saída personalizados devem fazer o seguinte para a versão do Android 10:

  • Atualize os efeitos de saída para suportar o formato de flutuação multicanal:
    • O suporte ao processamento Int16 não é mais necessário.
    • Suporte a contagens de canal de saída de 2 a 8 (para compatibilidade futura, considere as contagens de 1 a 30).
    • Suporta contagens de canais de entrada correspondentes às contagens de canais de saída para efeitos de inserção. Os efeitos auxiliares continuam a ver uma contagem de canal de entrada de 1 (mono).
    • Suportar ambas as máscaras de posição de canal (canónicas) e máscaras de índice de canal (1 << n) - 1 .
  • Se você deve continuar a oferecer suporte aos efeitos de saída do fornecedor legado e não pode atualizá-los, verifique o código legado da seguinte forma:
    • Saída legado (inserção) efeitos deve rejeitar configurações não suportadas em EFFECT_CMD_SET_CONFIG .
      • Verifique se o formato é int16.
      • Verifique se as máscaras dos canais de entrada e saída são estéreo.
      • Se qualquer teste falhar, voltar -EINVAL .
    • Os efeitos de saída (auxiliares) legados são configurados pelo AudioFlinger com uma máscara de canal de entrada mono e máscaras de canal de saída potencialmente multicanal, dependendo se o coletor de saída é multicanal. Eles devem rejeitar configurações não suportadas no EFFECT_CMD_SET_CONFIG .
      • Verifique se o formato é int16.
      • Verifique se a máscara do canal de entrada é mono e se a máscara do canal de saída é estéreo.
      • Se qualquer teste falhar, voltar -EINVAL .
    • Verifique o código legado. Não presuma que funciona!