Camera2中涉及到的类以及API的记录

Android_Banner.jpg

Camera2的API以及作用

CameraManager(摄像头管理器)
  • CameraManager是属于系统的一个服务,getSystemService(Context.CAMERA_SESSION);
  • 相机信息都封装到CameraCharacteristics中,通过cameraManager.getCameraCharacteristics()可以获取到CameraCharacteristics()类
  • 根据指定的相机ID,连接到对应的摄像头上
var cameraIdList = cameraManager.cameraIdList
  • 提供将闪光灯设置成手电筒模式的快捷方式
CameraCharacteristics(摄像头属性)
  • 摄像头的信息类,通过这个类可以拿到。
  • 我们通过CameraManager 传入摄像头ID,获取到指定摄像头的CameraCharacteristics。
var cameraCharacteristics = cameraManager.getCameraCharacteristics(cameraId)
  • 信息主要是:包括相机的朝向,判断闪光灯是否可用。
CameraDevice (代表摄像头)----> 相当于Camera 也就是当前你所连接的相机设备
  • 根据指定的参数创建CameraCaptureSession。
  • 根据指定的模版创建CaptureRequest。
  • 关闭相机。
  • 监听相机设备状态。
Surface
  • 它是一块用于填充图像数据的内存空间
  • 我们可以使用SurfaceView的Surface接受每一帧预览数据然后用于显示预览画面
  • 也可以使用ImageReader的Surface接受JPEG或YUV数据。
CameraCaptureSession
  • Camera2打开摄像头后主要是和CameraCaptireSession打交道,
  • 一个CameraDevice一次只能开启一个CameraCaptureSession
  • 比如我们进行预览拍照,都是通过CameraCaptureSession进行的,预览的API是setRepeatingRequest(),拍照的API是capture()
CaptureRequest
  • 当我们发起一次预览的时候需要使用CaptureRequest(),也就是发起了一次 captureRequest请求,
  • 我们进行拍照的曝光啊,对焦模式啊,都需要设置CaptureRequest进行参数的设置
CameraResult
  • CaptureResult是每一次Capture操作的结果,里面包括了很多状态信息。
  • 包括闪闪光灯状态,对焦状态,时间戳。
CaptureRequest.Builder
  • 主要是构建了一个Map,调用了build方法后重新获取到一个CaptureRequest

Camera2支持的高级特性

在开启相机之前检查相机信息
  • 我们知道我们的相机信息都是封装在CameraCharacteristics类中,在Camera2中将相机信息与相机的实体进行剥离,
    所以我们可以在不开启相机的情况下检查相机的信息。
在不开启预览的情况下拍照
  • 在Camera1中如果我们想拍照的话就必须先开启预览之后才能进行拍照。
  • Camera2中不强制要求必须先开启预览才能拍照。
一次拍摄多张不同格式和尺寸的图片
  • Camera1中一次只能拍摄一张照片,更不用谈多张和不同格式了。
  • Camera2不仅支持多张照片的拍摄 还支持不同格式的照片拍摄。
连拍
  • 使用Camera2自定义的相机可以支持连拍。

Camera2的功能支持情况

在一些中低端收集中使用的是HAL1,那么这样就会导致Camera2的一些高级功能没法使用,
不过Camera2中也提供了设备对于Camera2的支持情况的等级描述

  • INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY
  • INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED
  • INFO_SUPPORTED_HARDWARE_LEVEL_FULL
  • INFO_SUPPORTED_HARDWARE_LEVEL_3
  • INFO_SUPPORTED_HARDWARE_LEVEL_EXTERNAL
  • LEVEL_LEGACY: 向后兼容模式, 如果是此等级, 基本没有额外功能, HAL层大概率就是HAL1(我遇到过的都是)

  • LEVEL_LIMITED: 有最基本的功能, 还支持一些额外的高级功能, 这些高级功能是LEVEL_FULL的子集

  • LEVEL_FULL: 支持对每一帧数据进行控制,还支持高速率的图片拍摄

  • LEVEL_3: 支持YUV后处理和Raw格式图片拍摄, 还支持额外的输出流配置

  • LEVEL_EXTERNAL: API28中加入的, 应该是外接的摄像头, 功能和LIMITED类似

  • 对应的支持等级排序是 LEGACY < LIMITED < FULL < LEVEL_3

  • 关于设备支持的Camera2的高级功能的等级 可以通过CameraCharacteristics

 val deviceLevel = cameraCharacteristics[CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 151,511评论 1 330
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 64,495评论 1 273
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 101,595评论 0 225
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 42,558评论 0 190
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 50,715评论 3 270
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 39,672评论 1 192
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,112评论 2 291
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,837评论 0 181
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,417评论 0 228
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,928评论 2 232
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,316评论 1 242
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,773评论 2 234
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,253评论 3 220
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,827评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,440评论 0 180
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 34,523评论 2 249
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 34,583评论 2 249