这是我参与11月更文挑战的第1天,活动详情查看:2021最后一次更文挑战
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.储存图片