static void startRecoding() {
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);
recorder.setOutputFormat(output_formats[currentFormat]);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(getFilename());
recorder.setOnErrorListener(errorListener);
recorder.setOnInfoListener(infoListener);
try {
recorder.prepare();
recorder.start();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
// STOP RECODING ------------------------------------------------------------------------
static void stopRecording(){
if(null != recorder){
recorder.stop(); <---- 59line
recorder.reset();
recorder.release();
recorder = null;
}
}
startRecoding 을 한 후, stopRecording 을 하기만하면 다음과 같은 에러가 발생합니다..
E/AndroidRuntime(752): java.lang.IllegalStateException
E/AndroidRuntime(752): at android.media.MediaRecorder.stop(Native Method)
E/AndroidRuntime(752): at com.example.test1.CallRecording.stopRecording(CallRecording.java:59)
아무리 봐도 어떤에러인지 그 자체를 모르겠어 질문드립니다...어디를 봐야하는걸까요..?
안드로이드에서 Media가 들어간 객체들은 모두다 엉망입니다. 가이드도 약간애매해서 직접 해보는 수밖에 없는데요.
아마 오랜 기억을 더듬어 봐서 해결책을 말씀드리면...
recorder.pause();
recorder.prepare();
recorder.stop()
하시면 될 꺼라 생각됩니다.