O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.
Esta página foi traduzida pela API Cloud Translation.
Switch to English

Latência de áudio para desenvolvedores de aplicativos

Para a menor latência de áudio possível, recomendamos que você use o áudio nativo do Android baseado no OpenSL ES 1.0.1.

Lista de verificação de implementação

Para usar o áudio nativo do Android:

  1. Baixe e instale o Android NDK . No restante deste documento, presumiremos que NDKroot é o diretório onde você instalou o NDK.
  2. Leia a documentação de suporte.
  3. Verifique a API de nível 9 ou superior.
  4. Verifique o recurso android.hardware.audio.low_latency.
  5. Use o tamanho do buffer nativo recomendado e a taxa de amostra retornada por android.media.AudioManager.getProperty (java.lang.String)

    Nota : o mesmo tamanho de buffer e taxa de amostragem também devem ser usados ​​para entrada.

  6. Normalmente, uma contagem de buffer OpenSL ES de 1 é suficiente.
  7. Mantenha seus gerenciadores de retorno de chamada curtos, sem uso excessivo de CPU ou bloqueio ilimitado. Evite a inversão de prioridade.
  8. Considere o uso de algoritmos sem bloqueio para se comunicar entre os manipuladores de retorno de chamada de entrada e saída e entre os manipuladores de retorno de chamada e o restante do seu aplicativo.

Documentação de suporte

OpenSL ES 1.0.1

Use um visualizador de PDF para revisar a especificação OpenSL 1.0.1. Esta é uma referência bastante longa e nem tudo será relevante para você; mas você precisará consultá-lo para obter detalhes sobre a API.

Observação : este documento descreve o OpenSL ES 1.0.1 completo, mas o áudio nativo do Android é, na verdade, baseado em um subconjunto do OpenSL ES 1.0.1 com algumas extensões específicas do Android.

Documentos que descrevem versões posteriores do OpenSL ES, como 1.1, não são relevantes para o Android.

OpenSL ES para Android

O documento "OpenSL ES para Android" é fornecido na instalação do NDK e não está disponível online no momento. Abra este link em um navegador:

NDKroot/docs/Additional_library_docs/opensles/index.html

Você vai querer folhear todo o documento, mas preste atenção especial à subseção "Desempenho" da seção "Notas de programação".

A seção "Recursos com suporte do OpenSL ES 1.0.1" descreve o subconjunto com suporte do Android.

A seção "Extensões do Android" descreve as extensões específicas do Android que não estão incluídas no OpenSL ES 1.0.1 básico.

Relacionamento com OpenSL ES 1.0.1

Este diagrama de Venn mostra a relação entre o áudio nativo do Android e o OpenSL ES 1.0.1.

Diagrama de Venn

Figura 1. Diagrama de Venn

Outros recursos

source.android.com

O site source.android.com foi projetado principalmente para OEMs que criam dispositivos Android e para os fornecedores de SoC que fornecem componentes para esses OEMs.

No entanto, há muitas informações úteis sobre latência neste site, portanto, você pode querer revisá-las. Veja os artigos em Audio Latency.

android-ndk

Se você tiver dúvidas sobre como usar o áudio nativo do Android, pergunte no grupo de discussão android-ndk.

Vídeos

Áudio de alto desempenho no Android (Google I / O 2013)
Todo o vídeo é sobre latência.
Criação de ótimas experiências multimídia no Android (Google I / O 2014)
Os primeiros 14 minutos são sobre áudio em geral e latência de entrada em particular.
Latência de áudio: tamanhos de buffer (100 dias de Google Dev)
Descreve a relação entre latência de áudio, tamanhos de buffer e agendamento de tarefas.