【发布时间】:2012-08-11 02:31:24
【问题描述】:
我需要使用 AudioRecord 类录制特定时间的音频。让我们说1秒钟。然后处理音频,当处理完成后,再次录制 1 秒并不断重复,直到我关闭程序。最好的方法是什么?
【问题讨论】:
-
那个链接告诉你怎么录音,很简单。我正在寻找一种记录时间的方法。你会如何记录某个时间 3 秒,然后再做其他事情?
标签: android
我需要使用 AudioRecord 类录制特定时间的音频。让我们说1秒钟。然后处理音频,当处理完成后,再次录制 1 秒并不断重复,直到我关闭程序。最好的方法是什么?
【问题讨论】:
标签: android
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() 中将布尔值设置为 false。
【讨论】: