这个错误通常是由于MediaRecorder的状态不正确而导致的。一种可能的解决方法是在stop()之前添加一个reset()调用。示例代码:
mMediaRecorder = new MediaRecorder();
// 设置MediaRecorder的参数
try {
mMediaRecorder.prepare();
mMediaRecorder.start();
} catch (IOException e) {
e.printStackTrace();
}
// 停止录制
try {
mMediaRecorder.stop();
} catch (RuntimeException e) {
e.printStackTrace();
// 这里添加reset()调用
mMediaRecorder.reset();
}
在本例中,我们在stop()方法之前添加了一个reset()调用。这将重置MediaRecorder的状态,使其准备好下一次录制。
请注意,这种解决方法不一定适用于所有情况,因此您可能需要根据具体情况进行调整。