关于相机录制视屏时,用户按返回键退出时,出现Stop faild 的错误;
或者 相机在录制时被关闭,关闭时间很长,导致ui界面卡顿;
是因为MediaRecorder 的Stop方法不会马上执行,导致的错误或者卡顿;
我试过在 Activity 生命周期的 onStop 方法那里处理 MediaRecorder的Stop,但是无效;
然后在Activity的返回键那里处理 MediaRecord的 stop逻辑;
有效果了,MediaRecord停止得非常快,相机也不会卡顿;
偶然解决,不知原理 ....
@Override
public void onBackPressed() {
super.onBackPressed();
if (mMediaRecorder != null) {
try {
mMediaRecorder.setOnInfoListener(null);
mMediaRecorder.setPreviewDisplay(null);
mMediaRecorder.setOnErrorListener(null);
try {
mMediaRecorder.stop();
} catch (Exception e) {
e.printStackTrace();
}
mMediaRecorder.reset();
mMediaRecorder.release();
} catch (Exception e) {
e.printStackTrace();
}
mMediaRecorder = null;
}
}
附上 停止Camera的处理
if (mCamera != null) {
try {
mCamera.setPreviewCallback(null);
} catch (Exception e) {
e.printStackTrace();
}
try {
mCamera.lock();
} catch (Exception e) {
e.printStackTrace();
}
try {
mCamera.stopPreview();
} catch (Exception e) {
e.printStackTrace();
}
try {
mCamera.release();
} catch (Exception e) {
e.printStackTrace();
}
mCamera = null;
}