java.lang.RuntimeException: Camera is being used after Camera.release() was called

来源:互联网 发布:汇成凯网络 编辑:程序博客网 时间:2024/05/22 16:51

java.lang.RuntimeException: Camera is being used after Camera.release() was called

错误就是上述这个错误,错误出现在Android相机开发中,我所实现的方法贴一下:

        @Override        public void surfaceDestroyed(SurfaceHolder holder) {            if (!isOpenCamera)                return;            mCamera.setPreviewCallback(null);            mCamera.stopPreview();            mCamera.lock();            mCamera.release();            mCamera = null;        }
乍一看没啥错误,但是这个错误会在不经意间蹦出来影响应用的运行,直接就AAR了.所以为了解决这个错误,需要在camera调用setPreviewCallback之前加上一句代码,加完代码后的方法为:

        @Override        public void surfaceDestroyed(SurfaceHolder holder) {            if (!isOpenCamera)                return;            holder.removeCallback(this);            mCamera.setPreviewCallback(null);            mCamera.stopPreview();            mCamera.lock();            mCamera.release();            mCamera = null;        }
到此我的问题已经解决,但是我正在想为什么这么做?

1 0