2012-05-11 2 views
0

나는 사운드를 생성하고이 사운드를 녹음하는 응용 프로그램을 만들고,이 녹음을 평가 한 다음 사운드가 좋을 때까지이 작업을 다시 수행합니다.stop()이 호출 된 후 안드로이드에 녹음 객체 재사용

문제는 AudioRecord 객체를 다시 사용할 수 없다는 것입니다. 이 녹음은 스레드에서 실행됩니다. 는 onMarkerReached 이벤트가 트리거되면 나는 myAudioRecord.stop(); 전화 및 평가 후 나는 다음과 같이 다시 시작 :

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

그러나 레코더는이 excecuted를 처음이라고합니다.

+0

언급 한 관련 코드를 표시 할 수 있습니까? 내 머리 꼭대기에서 뭔가를 추정하고있는 경우를 대비하여'== NULL'을 확인하는 것과 같이 여기에서 일부 중지를 제안 할 수 있습니까? –

답변

0

녹음을 다시 시작할 수없는 이유는 NotificationProperty 때문입니다. 내가 부울 "isReading"을했고, 그것을 할 때 내가 전화 : 그래서

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

:

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

내가 먼저 읽고 들렸다 전에 firePropertyChange 그것을 정지 트리거 때문입니다.

0

아마 recorderThreadnull으로 설정하지 않으셨습니까?