初始化相机后,动态申请权限,不显示预览界面

转载https://www.jianshu.com/p/c434defba5e4
把SurfaceView隐藏一次,再显示一次就行了

SurfaceView.visibility=View.GONE

SurfaceView.visibility=View.VISIBLE

解释一下:

surfaceHolder=sv.holder

surfaceHolder?.addCallback(this)

surfaceHolder?.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS)

一般我们都这么初始化surfaceHolder,然后在callback会调中初始化camear

override fun surfaceChanged(holder:SurfaceHolder?, format:Int, width:Int, height:Int) {

}

override fun surfaceDestroyed(holder:SurfaceHolder?) {

}

override fun surfaceCreated(holder:SurfaceHolder?) {

}

这儿就会走surfaceCreated,在里面初始camera,但是在走这个方法之后,发现还没申请权限,就去申请权限,权限申请成功了后,却没有预览界面.

因为这儿已经不会再走一次callback了,但是呢,只需要改变一次预览界面的大小啊什么的就会再走callback,所以就有了开始的隐藏一次再显示一次,就会再调用callback了,这样就能再次初始化camera了,预览界面就有了

作者:暖宝宝_龍
链接:https://www.jianshu.com/p/c434defba5e4
来源:简书

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