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

Aquecimento de áudio

O aquecimento de áudio é o tempo que leva para que o circuito do amplificador de áudio do dispositivo seja totalmente alimentado e alcance seu estado de operação normal. Os principais contribuintes para o tempo de aquecimento de áudio são o gerenciamento de energia e qualquer lógica "de-pop" para estabilizar o circuito.

Este documento descreve como medir o tempo de aquecimento de áudio e possíveis maneiras de diminuir o tempo de aquecimento.

Medindo o aquecimento da saída

O thread FastMixer do AudioFlinger mede automaticamente o aquecimento da saída e o relata como parte da saída do comando dumpsys media.audio_flinger . No aquecimento, FastMixer chama write() repetidamente até que o tempo entre dois write() s seja a quantidade esperada. FastMixer determina o aquecimento de áudio observando quanto tempo um write() Hardware Abstraction Layer (HAL write() leva para se estabilizar.

Para medir o aquecimento de áudio, siga estas etapas para o alto-falante embutido e fones de ouvido com fio e em momentos diferentes após a inicialização. Os tempos de aquecimento geralmente são diferentes para cada dispositivo de saída e logo após a inicialização do dispositivo:

  1. Certifique-se de que FastMixer esteja ativado.
  2. Habilite os sons de toque selecionando Configurações> Som> Sons de toque no dispositivo.
  3. Certifique-se de que o áudio esteja desligado por pelo menos três segundos. Cinco segundos ou mais é melhor, porque o próprio hardware pode ter sua própria lógica de energia além dos três segundos que o AudioFlinger tem.
  4. Pressione Home e você ouvirá um clique.
  5. Execute o seguinte comando para receber o aquecimento medido:
    adb shell dumpsys media.audio_flinger | grep measuredWarmup
    

    Você deve ver uma saída como esta:

    sampleRate=44100 frameCount=256 measuredWarmup=X ms, warmupCycles=X
    

    O measuredWarmup=X é o número X de milissegundos que levou para o primeiro conjunto de write() s HAL ser concluído.

    O warmupCycles=X é o número de solicitações de gravação de HAL necessárias até que o tempo de execução de write() corresponda ao esperado.

  6. Faça cinco medições e registre todas, bem como a média. Se eles não forem todos aproximadamente iguais, é provável que a medição esteja incorreta. Por exemplo, se você não esperar o tempo suficiente após o áudio ter sido desligado, você verá um tempo de aquecimento inferior ao valor médio.

Medindo aquecimento de entrada

Atualmente, não há ferramentas fornecidas para medir o aquecimento da entrada de áudio. No entanto, o tempo de aquecimento de entrada pode ser estimado observando o tempo necessário para o retorno de startRecording () .

Reduzindo o tempo de aquecimento

O tempo de aquecimento geralmente pode ser reduzido por uma combinação de:

  • Bom projeto de circuito
  • Atrasos de tempo precisos no driver de dispositivo kernel
  • Executar operações de aquecimento independentes simultaneamente, em vez de sequencialmente
  • Deixar circuitos ligados ou não reconfigurar relógios (aumenta o consumo de energia ocioso)
  • Parâmetros calculados de cache

No entanto, tome cuidado com a otimização excessiva. Você pode descobrir que precisa fazer uma troca entre o baixo tempo de aquecimento e a falta de estalos nas transições de potência.