AudioRecordクラスを使用して特定の時間オーディオを録音する必要があります。1秒間言いましょう。次に、オーディオを処理し、処理が完了したら、もう一度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 に答える