camera2起预览和拍照流程
Camera2引用了管道的概念将安卓设备和摄像头之间联通起来, 系统向摄像头发送 Capture 请求, 而摄像头会返回 CameraMetadata,系统将其交给surface,显示出来。 这一切建立在一个叫作 CameraCaptureSession 的会话中。
1、启动一个线程专门处理拍照的事物
2、初始化surface
3、设置摄像头ID,确定要使用哪颗摄像头
4、设置图片缓冲区,数据保存
5、打开摄像头
三个回调 1、CameraDevice.StateCallback 打开摄像头后,硬件的状态,成功打开后建立一个捕获会话,获取到摄像头相关的数据流
2、CameraCaptureSession.StateCallback 判断当前会话是否建立成功,建立会话完成后进行重复请求,获取数据流
3、CameraCaptureSession.CaptureCallback 拍照成功、拍照过程中、连续拍照等状态,可以加入一些逻辑
详细步骤
开启一个摄像头的线程
建立TextureView的监听事件,
3.设置摄像头的参数
4.动态获取Camera所需要的权限,然后打开摄像头
在成功打开摄像头的回调函数中,来开启预览界面
5.开始预览
6.开始拍照
释放相关资源,重新开启预览
建立ImageReader,准备储存图片
7.储存图片
作者:大乔治
链接:https://juejin.cn/post/7025843859238158366