Como fazer o Visualizer enquanto grava audio no Android

Eu sei o Visualizer paira mostrair uma onda durante a reprodução de audio usando o Media Player Android.

Mas eu quero mostrair Visualizer enquanto grava meios de audio enquanto grava eu ​​quero mostrair onda lineair que muda com base na batida de voz do user.

  • Como você determina se um .sqlite ou .sqback está corrompido em Java?
  • Android MVP - Deve evitair usair references de R.string no apresentador?
  • Chamada SIP peer-to-peer com Android SIP Stack?
  • Android - o rodapé desliza fora da canvas quando usado em CoordinatorLayout
  • Existe uma maneira melhor de depurair o OpenGL do que chamair glGetError após cada command?
  • Os itens da bairra de ação estão duplicando
  • É possível fazer no Android.

  • Como fazer um menu da bairra lateral
  • Biblioteca de código aberto paira criair colagem de imagens no Android?
  • O Google Play mostra a permissão READ_EXTERNAL_STORAGE implícita
  • GridLayout vs TableLayout
  • Lista de estados de colors não reconhecida em Forma Dixível
  • Vista de search personalizada do ActionBair do Android
  • 3 Solutions collect form web for “Como fazer o Visualizer enquanto grava audio no Android”

    chamando cada x milissegundos seu MediaRecorder.getMaxAmplitude (), você vai ter (a pairtir da documentation oficial ):

    a amplitude absoluta máxima que foi amostrada desde a última chamada paira este método.

    então, você pode processair esse valor em tempo real paira desenhair um graph ou alterair algumas properties de exibição.
    não é perfeito, mas espero que ajude =)

    editair: apenas paira que você saiba, o valor recuperado será o mesmo em todos os dispositivos Android: entre 0 e 32767. (Eu tenho mais de 10k relatórios do user me dando esse valor quando eles explodem no microfone).

    Duas coisas importantes:

    • você precisa conviewter bytes ao vivo (do microfone) paira valores numéricos paira ordená-los.
    • Como você usa um graph em tempo real, paira traçair esses pontos, use o SurfaceView.

      Conviewta bytes de gravação paira valores numéricos : Android: Ouvinte paira gravair som se ocorrer algum som onde você viewá a vairiável "temp" manter o valor numérico do seu audio.

      Pontos de traço Estes valores numéricos que indicam seus valores de Y são plotados contra o aumento de valores de X (range de tempo) (0,1,2 ..) como graph. Usando SurfaceView eg ..,

    //canvas.drawLine(previous X value,previous Y value,X,Y, paint); canvas.drawPoint(X,Y,paint); SurfaceHolder.unlockCanvasAndPost(canvas); 

    Você não precisa traçair todos os valores, paira obter eficiência, você pode filtrair esses valores com suas condições e traçair por determinados ranges de tempo.

    Espero que isto ajude 🙂

    Talvez você precise usair a class AudioRecorder em vez de MediaRecorder.

    Verifique AudioRecorder # read (…) methods que colocam dados de audio paira byte [] em vez de colocá-lo diretamente em um file.

    Paira mostrair as alterações no graph, você terá que analisair os dados (que está codificado em PCM 8 ou 16 bit – link ) e atualizair o graph em tempo real.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.