我写了一个用于录制的android代码,其中包含一些线程。但我需要将线程执行时间限制为1秒。虽然这是我第一次尝试使用TimerTask的线程,如下所示:timerTask or handler
但它不起作用。
这是代码:
void playSound(){
AudioTrack audioTrack= null;
try{
audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC,sampleRate, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, generatedSnd.length, AudioTrack.MODE_STATIC);
audioTrack.write(generatedSnd, 0, generatedSnd.length);
audioTrack.play();
Thread thr=new Thread(new Runnable(){
public void run(){
startRecording();
}
});
thr.start();
timer.schedule(new TimerTask(){
int n=0;
public void run(){
stopRecording();
}
},1,1000);
}
catch(Exception e)
{
System.out.print(e);
}
}
public void stopRecording()
{ mRecorder.stop();
mRecorder.release();
}
答案 0 :(得分:0)
你致电schedule(TimerTask task, long delay, long period)
- 这是一项重复的任务。
使用schedule(TimerTask task, long delay)