阅读 612

camera2起预览和拍照流程

Camera2引用了管道的概念将安卓设备和摄像头之间联通起来, 系统向摄像头发送 Capture 请求, 而摄像头会返回 CameraMetadata,系统将其交给surface,显示出来。 这一切建立在一个叫作 CameraCaptureSession 的会话中。

image.png

1、启动一个线程专门处理拍照的事物

2、初始化surface

3、设置摄像头ID,确定要使用哪颗摄像头

4、设置图片缓冲区,数据保存

5、打开摄像头

image.png

三个回调 1、CameraDevice.StateCallback 打开摄像头后,硬件的状态,成功打开后建立一个捕获会话,获取到摄像头相关的数据流

2、CameraCaptureSession.StateCallback 判断当前会话是否建立成功,建立会话完成后进行重复请求,获取数据流

3、CameraCaptureSession.CaptureCallback 拍照成功、拍照过程中、连续拍照等状态,可以加入一些逻辑

详细步骤

  1. 开启一个摄像头的线程

image.png

  1. 建立TextureView的监听事件,

image.png

image.png

3.设置摄像头的参数

image.png

4.动态获取Camera所需要的权限,然后打开摄像头

image.png

在成功打开摄像头的回调函数中,来开启预览界面

image.png

5.开始预览

image.png

image.png

6.开始拍照

image.png

释放相关资源,重新开启预览

image.png

建立ImageReader,准备储存图片

image.png7.储存图片

image.png

image.png

image.png


作者:大乔治
链接:https://juejin.cn/post/7025843859238158366


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐