我试图让录音功能在这么多秒后停止。录音有效,但在给定的持续时间后不会停止。
我已经尝试将这些项目放在我的 onClick 以及被调用函数的 try 部分中,但每次我得到相同的结果时,应用程序都会继续运行。
环顾 stackoverflow 和其他站点,我在线程、处理程序 postDelayed 和计时器上尝试了不同的想法,但没有任何接缝可以工作。
我已经从下面的代码中删除了录音内容,只关注持续时间设置。代码在我尝试的最后一项。
我感谢任何帮助。
public void onClick(View v) {
recordStarted=true;
recordAudio();
final Runnable stopRecording = new Runnable() {
public void run() {
recordStarted=false;
}
};
handler.postDelayed(stopRecording, 3000);
//Start the delay of stopping the recordin
}
public void recordAudio () {
try {
while(recordStarted) {
counter++;
} catch (Throwable t) {
Log.e("AudioRecord", "Recording Failed");
t.printStackTrace();
}
String counterS = String.valueOf(counter);
Toast.makeText(Main.this, "counter = " + counterS, Toast.LENGTH_SHORT).show();
}