Camera 2.0 资源释放引起的异常:Lacking privileges to access camera service

关于这个bug也是排查了两个钟头,咋一看以为是相机授权引起的,其实不然。下面就需要注意的地方列举一下,以及如何排查该异常。

相机在打开,释放过程中的非正常操作都会引起该异常。

1、相机需要在 SurfaceTexture可用的时候去打开,即在TextureView 的SurfaceTextureListener监听回调中通过CameraManager打开相机;

        一般情况下打开相机,释放相机资源都是一个耗时操作,会置于子线程中,如果过早openCamera,TextureView 还没有准备就绪;

2、相机资源释放对应的需要在TextureView 被销毁的时候释放,即位于onSurfaceTextureDestroyed( )中; 当然也可以手动释放,需要注意第三点;

3、释放的时候需要置TextureView 的SurfaceTextureListener为NULL;

        因为TextureView.SurfaceTextureListener - surface在Activity或Fragment变为用户不可见的时候仍然可用,即surface处于活动状态,需要释放TextureView 的监听。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容