-5

AudioRecordクラスを使用して特定の時間オーディオを録音する必要があります。1秒間言いましょう。次に、オーディオを処理し、処理が完了したら、もう一度1秒間録音し、プログラムを閉じるまでこれを繰り返します。これに対する最善のアプローチは何でしょうか?

4

1 に答える 1

0
public void recordandprocess()
{        

AudioRecord recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,
            44100, AudioFormat.CHANNEL_IN_STEREO,
            AudioFormat.ENCODING_PCM_16BIT, bufferSize);

        recorder.startRecording();

        //executes run() after 1000 msec
        Handler handler = new Handler(); 
        handler.postDelayed(new Runnable() { 
         public void run() { 
                      recorder.stop();
                      recorder.release(); 
                      // do your processing here
                      recordandprocess(); //recursive call to this function to start recording after processing is done
         } 
    }, 1000); 
        .
        .
        .
      return;
}

この関数を一度onCreate()呼び出すと、アクティビティがシステムによって強制終了されるまで、自分自身を再帰的に呼び出し続けます。

戻るボタンまたはホームボタンを押したときに再帰を停止したい場合は、関数内のすべてのコードを実行する前にブール値をチェックしてください。でブール値を false に設定しますonPause()

于 2012-08-15T04:06:00.550 に答える