-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()它将继续递归调用自身,直到您的活动被系统杀死。

如果您想在按下返回或主页按钮时停止递归,请在执行其中的所有代码之前检查函数内部的布尔值。在您的onPause().

于 2012-08-15T04:06:00.550 回答