Android Camera2的使用
参考:https://developer.android.com/reference/android/hardware/camera2/package-summary.html
camera2提供了一个连接Android相机的接口,用来代替camera类。
该软件包将摄像机设备建模为流水线,该流水线接收输入请求以捕获单个帧,根据请求捕获单个图像,然后输出一个捕获结果元数据包,以及用于请求的一组输出图像缓冲区。 这些请求按顺序处理,并且多个请求可以一次在飞行中。 由于相机设备是一个多阶段的流水线,因此在多数Android设备上都需要有多个请求。
要枚举,查询和打开可用的相机设备,请获取CameraManager实例。
单独的CameraDevices提供一组静态属性信息,用于描述设备的硬件设备以及可用的设置和输出参数。 这些信息是通过CameraCharacteristics对象提供的,可以通过getCameraCharacteristics(String)获取有效值。
要从摄像头设备捕获或流式传输图像,应用程序必须首先使用createCaptureSession(List,CameraCaptureSession.StateCallback,Handler)创建一个带摄像头设备的输出Surfaces的摄像头捕获会话。 每个表面必须预先配置适当的尺寸和格式(如果适用),以匹配相机设备的尺寸和格式。 目标Surface可以从各种类获得,包括SurfaceView,通过Surface(SurfaceTexture),MediaCodec,MediaRecorder,Allocation和ImageReader的SurfaceTexture。
通常,相机预览图像将发送到SurfaceView或TextureView(通过其SurfaceTexture)。 可以使用JPEG和RAW_SENSOR格式的ImageReader捕获DngCreator的JPEG图像或RAW缓冲区。 在RenderScript,OpenGL ES中,或直接在托管代码或本机代码中进行应用程序驱动的相机数据处理,最好分别使用带有YUV_420_888格式的YUV类型,SurfaceTexture和ImageReader进行分配。
然后,应用程序需要构建一个CaptureRequest,它定义了摄像机设备捕获单个图像所需的所有捕获参数。 该请求还列出了应将哪个配置的输出Surfaces用作此捕捉的目标。 CameraDevice有一个工厂方法,用于为给定用例创建一个请求构建器,该方法针对运行该应用程序的Android设备进行了优化。
一旦请求被设置,它就可以被传送到主动捕捉会话,以进行一次捕捉或无限重复使用。这两种方法也有一个变种,接受用作突发捕获/重复突发的请求列表。重复请求的优先级低于捕获的优先级,因此在捕获当前重复(突发)捕获的任何新实例之前,将捕获配置了重复请求时通过capture()提交的请求。
处理请求后,摄像机设备将生成一个TotalCaptureResult对象,其中包含有关拍摄时相机设备状态的信息以及使用的最终设置。 如果舍去或解决相互矛盾的参数是必要的,则这些可能与请求有所不同。 相机设备也会将一帧图像数据发送到请求中包含的每个输出表面。 这些是相对于输出CaptureResult异步生成的,有时候会相当晚。
Android Camera2的使用的更多相关文章
- Android Camera2采集摄像头原始数据并手动预览
Android Camera2采集摄像头原始数据并手动预览 最近研究了一下android摄像头开发相关的技术,也看了Google提供的Camera2Basic调用示例,以及网上一部分代码,但都是在Te ...
- Android Camera2 拍照(三)——切换摄像头,延时拍摄和闪光模式
原文:Android Camera2 拍照(三)--切换摄像头,延时拍摄和闪光模式 一.切换摄像头 在前后摄像头之间切换,首先需要关闭之前打开的摄像头,关闭preview,之后重新打开新的摄像头,重新 ...
- Android Camera2 拍照(四)——对焦模式
原文:Android Camera2 拍照(四)--对焦模式 本篇将重点介绍使用Camera2 API进行手动对焦的设置,以及在手动对焦与自动对焦模式之间切换. 一.手动对焦响应事件 首先我们要实现点 ...
- Android Camera2拍照(一)——使用SurfaceView
原文:Android Camera2拍照(一)--使用SurfaceView Camera2 API简介 Android 从5.0(21)开始,引入了新的Camera API Camera2,原来的a ...
- Android Camera2 拍照(二)——使用TextureView
原文:Android Camera2 拍照(二)--使用TextureView 上一篇博文简单介绍了使用Camera2 API拍摄照片,并使用SurfaceView作为预览界面.实际上,相对于Surf ...
- android Camera2 API使用详解
原文:android Camera2 API使用详解 由于最近需要使用相机拍照等功能,鉴于老旧的相机API问题多多,而且新的设备都是基于安卓5.0以上的,于是本人决定研究一下安卓5.0新引入的Came ...
- Android Camera2 拍照入门学习
原文:Android Camera2 拍照入门学习 学习资料: 肾虚将军android camera2 详解说明 极客学院android.hardware.camera2 使用指南 Android 5 ...
- Android Camera2/HAL3
Android : Camera2/HAL3 框架分析 https://www.cnblogs.com/blogs-of-lxl/p/10651611.html Android : Camera之ca ...
- Android Camera2 预览功能实现
1. 概述 最近在做一些关于人脸识别的项目,需要用到 Android 相机的预览功能.网上查阅相关资料后,发现 Android 5.0 及以后的版本中,原有的 Camera API 已经被 Camer ...
- Android : Camera2/HAL3 框架分析
一.Android O上的Treble机制: 在 Android O 中,系统启动时,会启动一个 CameraProvider 服务,它是从 cameraserver 进程中分离出来,作为一个独立进程 ...
随机推荐
- IIS短文件名泄露漏洞检测
http://www.xxxx.com/*~1****/a.aspx http://www.xxxx.com/l1j1e*~1****/a.aspx If the first one return a ...
- 运行startup.bat的启动过程
一.前言 一般启动tomcat都是找到bin目录下的startup.bat(windows)下或者startup.sh(linux下),所以要研究tomcat的启动,startup脚本是避不开的.那么 ...
- pdo连接数据
<?php //1.操作其它数据库//2.事务功能//3.防止SQL注入攻击 //造PDO对象//$dsn = "mysql:dbname=mydb;host=localhost&qu ...
- 【Mysql】事务日志-Write Ahead logging vs command-logging(转)
原理讲解: Write Ahead logging vs command logging Write Ahead logging 持久化数据保存在磁盘,数据的存储是随机的,并非顺序: 内存中保存磁盘数 ...
- P【1012】拼数
十分蒟蒻...(还是看别人的博才过的...) 题解 #include<cstdio>#include<cstring>#include<algorithm>#inc ...
- PAT 乙级 1072 开学寄语(20 分)
1072 开学寄语(20 分) 下图是上海某校的新学期开学寄语:天将降大任于斯人也,必先删其微博,卸其 QQ,封其电脑,夺其手机,收其 ipad,断其 wifi,使其百无聊赖,然后,净面.理发.整衣, ...
- Zabbix 创建触发器
#1 配置 主机名10.0.0.33 触发器 点击创建触发器 #2 #4 点击添加 #触发器添加完毕
- 二进制编译安装httpd服务
systemctl stop httpd yum remove httpd-----------------------(在做之前 先删掉httpd) 安装编译环境 yum -y groupinsta ...
- [UE4]位与字节
位 1.bit,比特 2.一个位可以表示两个值,0或者1(一个位只能表示0或者1,并不是能同时表示0和1). 3.一个位为什么只能是2个值,而不能是3个值呢?这是由于技术因素造成的,在硬件中,如果用一 ...
- Postman模拟ajax请求 并模拟登陆
2.设置header头 <span style="font-size:16px;">设置代理.cookie.X-Requested-With 注意 :X-Reque ...