java - 当我按下录制按钮时,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)
解决方案
请参阅文档:
公共无效停止()
...
投掷
如果在 start() 之前调用 IllegalStateException