0

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

我遇到的问题是似乎不可能重用 AudioRecord 对象。此记录在一个线程中运行。当触发 onMarkerReached 事件时,我调用myAudioRecord.stop(); 并在评估后再次启动它,如下所示:

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

但是记录器仅在第一次执行时才被调用。

4

2 回答 2

0

也许你永远不会recorderThread设置null

于 2012-05-11T14:56:51.073 回答
0

我无法重新开始录制的原因是 NotificationProperty。我有一个布尔值“isReading”,完成后我打电话给:

public void setIsReading(boolean isReading) {
  pcs.firePropertyChange("isReading", this.isReading, isReading);
  this.isReading = isReading;
}

所以:

while(isReading) {
   AudioRecord.read(..);
}

因为我首先触发了 firePropertyChange,所以在它停止读取之前就停止了它。

于 2012-05-15T11:46:40.830 回答