Повторное использование объекта записи в Android после вызова stop()
Я делаю приложение, в котором я делаю звук и записываю этот звук, оцениваю эту запись и делаю это снова, пока звук не станет хорошим.
Проблема, которую я имею, состоит в том, что кажется невозможным повторно использовать объект AudioRecord. Эта запись работает в потоке. Когда вызывается событие onMarkerReached, я вызываю myAudioRecord.stop();
и после оценки я начинаю это снова так:
if(recorderThread == null) {
recorderThread = new Thread(recorder.runRecorderThread);
}
recorderThread.start();
Но рекордер вызывается только в первый раз, когда это происходит.
2 ответа
Причина, по которой я не смог перезапустить запись, была вызвана NotificationProperty. У меня был логический "isReading", и когда это было сделано, я позвонил:
public void setIsReading(boolean isReading) {
pcs.firePropertyChange("isReading", this.isReading, isReading);
this.isReading = isReading;
}
так:
while(isReading) {
AudioRecord.read(..);
}
Потому что я сначала запустил firePropertyChange остановил его, прежде чем он остановил чтение.
Возможно, вы никогда не устанавливаете recorderThread
в null
?