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

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

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

[java] view plain copy

@Override  

public void surfaceDestroyed(SurfaceHolder holder) {  

if (!isOpenCamera)  

return;  

mCamera.setPreviewCallback(null);  

    mCamera.stopPreview();  

    mCamera.lock();  

    mCamera.release();  

mCamera =null;  

}  

乍一看没啥错误,但是这个错误会在不经意间蹦出来影响应用的运行,直接就AAR了.所以为了解决这个错误,需要在camera调用setPreviewCallback之前加上一句代码,加完代码后的方法为:

[java] view plain copy

@Override  

public void surfaceDestroyed(SurfaceHolder holder) {  

if (!isOpenCamera)  

return;  

holder.removeCallback(this);  

mCamera.setPreviewCallback(null);  

    mCamera.stopPreview();  

    mCamera.lock();  

    mCamera.release();  

mCamera =null;  

}  

到此我的问题已经解决,但是我正在想为什么这么做?

对于无法分屏,建议配置不分屏,即不会FC。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容