我正在制作一个应用程序,我会发出声音并录制此声音,评估此录音并再次执行此操作,直到声音良好。
我遇到的问题是似乎无法重新使用AudioRecord对象。这个录音在一个线程中运行。
当触发onMarkerReached事件时,我调用myAudioRecord.stop();
在评估之后,我再次开始这样做:
if(recorderThread == null) {
recorderThread = new Thread(recorder.runRecorderThread);
}
recorderThread.start();
但是录音机只是在第一次被录音时才被召唤。
答案 0 :(得分:0)
也许您永远不会将recorderThread
设置为null
?
答案 1 :(得分:0)
我无法重新开始录制的原因是NotificationProperty。 我有一个布尔“isReading”,当它完成后我调用了:
public void setIsReading(boolean isReading) {
pcs.firePropertyChange("isReading", this.isReading, isReading);
this.isReading = isReading;
}
这样:
while(isReading) {
AudioRecord.read(..);
}
因为我第一次触发firePropertyChange在停止读取之前就停止了。