Android 录制音频文件时,MediaRecorder.stop()方法出错 AddRecordingActivity.java
Android 录制音频文件时,MediaRecorder.stop()方法出错 AddRecordingActivity.java,android,android-mediarecorder,customdialog,Android,Android Mediarecorder,Customdialog,Logcat 根据文件: MediaRecorder recorder = new MediaRecorder(); recorder.setAudioSource(MediaRecorder.AudioSource.MIC); recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR
Logcat
根据文件:
MediaRecorder recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(PATH_NAME);
recorder.prepare();
recorder.start(); // Recording is now started
...
recorder.stop();
recorder.reset(); // You can reuse the object by going back to setAudioSource() step
recorder.release(); // Now the object cannot be reused
因此,如果调用recorder.stop()调用recorder.start()之前的code>
if将在android.media.MediaRecorder.stop(本机方法)上显示异常java.lang.IllegalStateException
您需要正确处理停止功能。或者提供仅在记录器启动时调用的检查
还要检查您是否添加了权限:
03-05 10:35:29.145 3478-3478/com.becbingham.mybabyhelper E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.becbingham.mybabyhelper, PID: 3478
java.lang.IllegalStateException
at android.media.MediaRecorder.stop(Native Method)
at com.becbingham.mybabyhelper.AddRecordingActivity$4.onClick(AddRecordingActivity.java:174)
at android.view.View.performClick(View.java:4848)
at android.view.View$PerformClick.run(View.java:20260)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5624)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)
MediaRecorder recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(PATH_NAME);
recorder.prepare();
recorder.start(); // Recording is now started
...
recorder.stop();
recorder.reset(); // You can reuse the object by going back to setAudioSource() step
recorder.release(); // Now the object cannot be reused