为避免出现问题(适配问题)。
应该要调用:
mMediaRecorder.setOnErrorListener(new MediaRecorder.OnErrorListener() { @Override public void onError(MediaRecorder mr, int what, int extra) {...});
其中onError部分入下,部分手机定制系统后Native会抛出异常:
java.lang.IllegalStateException
if (mMediaRecorder != null) { mMediaRecorder.stop(); mMediaRecorder.release(); mMediaRecorder = null; }
应该改为
if (mMediaRecorder != null) { try { mMediaRecorder.stop(); } catch (IllegalStateException e) { mMediaRecorder = null; mMediaRecorder = new MediaRecorder(); } mMediaRecorder.release(); mMediaRecorder = null; }具体原因可以参考:https://blog.csdn.net/u014737138/article/details/49737955