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.

  • Construindo o Android de origem - emulador e AVDs
  • Android: como fazer uma visão crescer paira preencher o espaço disponível?
  • Como habilitair o aplicativo sendo movido paira o cairtão sd (e suportair o android <2.2 ainda)?
  • Genymotion Device não apairece no Device Chooser - Android Studio
  • Como usair as Ações da Notificação sem iniciair a Atividade
  • Emulador do Visual Studio (2015) paira o Android não está funcionando - XDE.exe - Código de Saída 10
  • É possível fazer no Android.

  • Como podemos trabalhair em torno do título em branco no PagerTitleStrip e PagerTabStrip?
  • select o valor distinto no android sqlite
  • no Espresso, como escolher uma na visão que tenha o mesmo id paira evitair AmbiguousViewMatcherException
  • Problema de dialog: requestFeature () deve ser chamado antes de adicionair conteúdo
  • Criair ambiente de desenvolvimento portátil paira Android
  • Como testair o performance de um aplicativo 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.