首页 > 解决方案 > 当我按下录制按钮时,android 应用程序在 6 秒后崩溃

问题描述

                Toast.makeText(MainActivity.this, "Recording...", Toast.LENGTH_SHORT).show();
                final Handler handler = new Handler();
                handler.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        //Do something after 6s
                        Toast.makeText(MainActivity.this, "Stopped Recording", Toast.LENGTH_SHORT).show();

                        mediaRecorder.stop();
                        mediaRecorder.release();
                        setupMediaRecorder();
                    }
                }, 6000);

当我开始录制时,应用程序在 6 秒后崩溃,这是我设置的媒体录制器功能:

   private void setupMediaRecorder()
{
    mediaRecorder= new MediaRecorder();
    mediaRecorder.setAudioSamplingRate(8000);
    mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.OGG);
   // mediaRecorder.setAudioEncoder(MediaRecorder.OutputFormat.OGG);
    mediaRecorder.setOutputFile(pathSave);
}

logcat: 错误发生在 mediaRecorder.Stop();在处理程序中

2019-10-10 01:11:49.942 21574-21574/com.example.parkinsonsdisease E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.parkinsonsdisease, PID: 21574
java.lang.IllegalStateException
    at android.media.MediaRecorder._stop(Native Method)
    at android.media.MediaRecorder.stop(MediaRecorder.java:1378)
    at com.example.parkinsonsdisease.MainActivity$1$1.run(MainActivity.java:93)

标签: javaandroid

解决方案


请参阅文档:

公共无效停止()

...

投掷

如果在 start() 之前调用 IllegalStateException


推荐阅读