Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 录制音频文件时,MediaRecorder.stop()方法出错 AddRecordingActivity.java_Android_Android Mediarecorder_Customdialog - Fatal编程技术网

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