Camera初步概念认知

一、Camera2的API了解

1.Camera2中的API的重要的类:

CameraManager:系统服务,所有摄像头设备的管理者,我们可以通过它去获得Camera设备对象。

CameraDevice:一个CameraDevice对应一个摄像头设备。其中的StateCallback是成功打开了摄像头的回调。

CameraCharacteristics:它是系CameraDevice的属性描述类。

CameraCaptureSession:系统与摄像头之间的会话,通过CameraDevice创建。其中的StateCallback是session创建成功后的回调。CaptureCallback是captureRequest创建成功后的回调。

CameraRequest:session创建成功后,通过它定制你想要对摄像头进行的操作。(包括预览、拍照、录制等功能)

2.Camera2API的调用流程

在这其中,

CameraManager是系统服务,其主要功能有:

获取某颗Camera的特性(能力)

getCameraCharacteristics(const):查询某个Camera的能力。

getCameraExtensionCharacteristics():查询某个Camera的Extension能力(扩展能力)。

是否支持多颗Camera同时创建session

getConcurrentCameraalds():获取同时配置session的Camera列表。

isConcurrentSessionConfiguratonSupported():指定的Camera和SessionConfiguration是否支持同时配置session。

枚举CameragetCameraaldList():获取当前可用的CameraID列表。
打开CameraopenCamera():打开指定ID的Camera设备
监控Camera是否可用

registerAvailabilityCallback():注册一个Callback来监听Camera可用状态。

unregisterAvailabilityCallback():注销一个Callback

Torch控制

registerTorchCallback():注册一个Callback来监听Torch Flash的模式状态。

unregisterTorchCallback():注销Callback。

setTorchMode():打开/关闭指定Camera的Flash Torch模式。

CameraCharacteristics是用来描述CameraDevice的属性/能力的。

例如:

1.获取key对应的value值

2.获取所有Cameracharacteristic支持的key列表

3.获取所有体验capturerequest支持的key列表

4.获取所有captureresult支持的key列表

5.获取当前logical Camera对应的physical Camera列表

6.获取初始化session是可设置的key列表,是capturerequest支持的key列表的子集

7.获取physical Camera可独立设置的key列表

8.获取需要camera权限才能访问的key列表

9.获取指定usecase下,推荐使用的stream配置信息

CameraDevice代表一个已打开的Camera设备,其功能主要有:

关闭相机close():以最快的速度关闭相机
获取相机ID(Camera ID)getID():获取当前CameraID
创建CaptureRequest

createCapturerequest(int templateType):根据templateType创建capturerequest.Builder

createReprocessCaptureRequest(TotalCaptureResult inputResult):根据TotalCaptureResult 创建用于在处理的capture request.Builder

创建CameraCaptureSession

createCaptureSession(SessionConfiguration config):根据sessionConfiguration创建Capture Session.Builder。

createExtensionSession():创建CameraExtensionSession。

isSessionConfigurationSupported():指定的SessionConfiguration是否支撑。

音频限制

setCameraAudioRestriction(int mode):设置音频限制模式,可屏蔽来自ringtones,alarmsornotifications的震动和声音

getCameraAudioRestriction():获取当前音频使用技术.

 CameraCaptureSession 代表一个具体的相机会话

它实现的功能有:

1.送CaptureRequest给Camera底层

2.停止Repeating CaptureRequest

3.切换到离线会话

4.图像数据再处理(Reprocess)

5.启动性能优化(包括:延迟surface、预分配Buffer)

6.动态更新 Output Configuration

7.关闭会话 

3.总结

从打卡相机到预览到拍照的整个流程为:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值