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 に答える