2012-06-16 10 views
6

私はボイスレコーダーアプリケーションに取り組んでいます。私はそれを録音しながらオーディオの強さを見つける方法があることを知りたいです。私は録音をどこにも保存したくない。私はちょうどマイクで捕捉されている音が大きく、次にあらかじめ定義されたしきい値であるかどうかをユーザーに示したいと思っています。録音中の音声の強さ(強度)を確認する方法は?

音声が2デシベル以下で捕捉されている場合は、赤いキャンバスに「低」と表示されます。音が大きくなり、2デシベルのしきい値を超えると、キャンバスは緑色に変わり、「高い」メッセージが表示されます。

MediaRecorderを使用するか、AudioRecorderクラスを使用することは可能ですか?そしてそれをどうやって解決するか。事前

+0

ヘソンです...なぜdownvote。これは、すべてのSO規範を満たす完全に適切な質問でした...? – Pargat

答えて

9

ありがとうございますスタートを記録するときに別のスレッドを起動して、振幅をキャプチャするgetMaxAmplitude機能を使用することができます。以下は

我々は250ミリ秒ごとのサンプルを取っているsnippet.hereと算出された最大振幅

public void run() { 
      int i = 0; 
      while(i == 0) { 

       try { 
        sleep(250); 
       } catch (InterruptedException e) { 
        e.printStackTrace(); 
       } 
       if (mRecorder != null) { 
        amplitude = mRecorder.getMaxAmplitude(); 

        //Here you can put condition (low/high) 
        Log.i("AMPLITUDE", new Integer(amplitude).toString()); 
       } 

      } 
     } 
関連する問題