调用stop()后重新使用android中的录制对象

时间:2012-05-11 14:51:00

标签: java android audiorecord

我正在制作一个应用程序,我会发出声音并录制此声音,评估此录音并再次执行此操作,直到声音良好。

我遇到的问题是似乎无法重新使用AudioRecord对象。这个录音在一个线程中运行。 当触发onMarkerReached事件时,我调用myAudioRecord.stop(); 在评估之后,我再次开始这样做:

    if(recorderThread == null) {
      recorderThread = new Thread(recorder.runRecorderThread);
    }
    recorderThread.start();

但是录音机只是在第一次被录音时才被召唤。

2 个答案:

答案 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在停止读取之前就停止了。