我的应用程序中的一项功能是录音功能。我正在Intent服务中进行录制。以下是代码段:
MediaRecorder audioRecorder;
public void startRecording(){
audioRecorder = new MediaRecorder();
audioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
audioRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
audioRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
audioRecorder.setOutputFile(Environment.getExternalStorageDirectory().getPath() + "/sample.mp3");
audioRecorder.setOnInfoListener(this);
try {
audioRecorder.prepare();
audioRecorder.start();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void stopRecording(){
audioRecorder.stop();
audioRecorder.reset();
audioRecorder.release();
}
我可以毫无问题地开始录音。但是当我停止录制时,应用程序崩溃并抛出“java.lang.NullPointerException”异常。
以下是logcat消息:
05-22 18:28:17.031: E/AndroidRuntime(3249): FATAL EXCEPTION: IntentService[IntentService-669495791420-2]
05-22 18:28:17.031: E/AndroidRuntime(3249): java.lang.NullPointerException
05-22 18:28:17.031: E/AndroidRuntime(3249): at com.test.IntentService.onMessage(IntentService.java:171)
05-22 18:28:17.031: E/AndroidRuntime(3249): at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
05-22 18:28:17.031: E/AndroidRuntime(3249): at android.os.Handler.dispatchMessage(Handler.java:99)
05-22 18:28:17.031: E/AndroidRuntime(3249): at android.os.Looper.loop(Looper.java:137)
05-22 18:28:17.031: E/AndroidRuntime(3249): at android.os.HandlerThread.run(HandlerThread.java:60)
录音保存在外部存储器中没有任何问题,也可以播放。
知道导致该应用程序抛出此异常的原因是什么?是因为我在Intent服务上运行它吗?
提前致谢