CameraCaptureSession
1 CameraCaptureSession 是一个事务,用来向相机设备发送获取图像的请求,同时reprocess 图像(是不是hal已经处理了一次图像,然后在上层进行处理 or 命令hal进行其他处理操作)。
2 CameraCaptureSession 创建需要几百毫秒, hal 此时会进行 A pipeline 的创建 B 申请 buffer(这两项都是hal进行的)
3 当新的 CameraCaptureSession 被创建,那么旧的 CameraCaptureSession,会关掉,它的onclose 方法会关掉。
4
CameraCaptureSession 有几种状 态,
onConfigured 当前的 CameraCaptureSession 已被创建成功,而且 Session 已经传递上去。
这个时候,我们可以通过 CameraCaptureSession 向底层发送 CaptureRequset,如果 CaptureRequset 正在等待被处理,那么 onActive 将会被调用,否则的话,onReady会被调用
onConfiguredFailed : CameraCaptureSession 创建失败,可能是 Surface size 不支持,或者 Surface 数量不支持。 这时候要重新审视 CameraCaptureSession 的参数。
那我们也可以知道。CameraCaptureSession 也会对 Surface size 跟 Surface 的数量进行设置。
onSurfacePrepared : 某一个 Surface 预分配的 BUffer 完成后,会调用
onReady 当 session没有 requset 处理时 调用
onActive 当 session开始 requset 处理时 调用
onClosed 表示 该 session 已经关闭了。
onCaptureQueueEmpty
5 个人感觉 不管是 拍照还是录像,都一般经过这几步 (onActive-》 onSurfacePrepared 前后关系 (前后关系也不是一定的))
onConfigured -》onReady -》 onActive-》 onSurfacePrepared
6 当 拍照 跟 录像之间进行切换的时候,CameraCaptureSession 会关闭,然后重新,生成,我感觉是 session 的type 不一样。
7 状态 onActive 会切换到 onReady 或者 onCaptureQueueEmpty(一般拍照,会这么显示,表示已经拍完照,它更像是一种通知)。
8 什么是慢动作录像(SlowMotionRecord)?
通常我们人眼能够接受的最好的视频帧速率是24帧/每秒左右。那如果我们用120帧/秒拍摄一个动作,再用24帧每秒来播放的话,视频就放慢了5倍,这个就是慢动作录像了。
慢动作录像,又叫高帧率录像(HFR),也就是以高fps(运行速率)捕获、编码并保存为30 fps(目标速率),这种情况运行速率大于目标速率。
(还有一种模式叫做高速录制(HSR) : 即以高fps(运行速率)捕获、编码并保存为高 fps(目标速率),运行速率等于目标速率。)
9 CameraCaptureSession 的api,实现。
拍照:
capture, 向 camera 底层发送一个 CaptureRequest,优先级比 Repeating CaptureRequest 要高
连拍:
captureBurst 向camera 底层发送一组 CaptureRequest,优先级比 Repeating CaptureRequest 要高。这一组CaptureRequest,不能被其他的 CaptureRequest,插入进来。
这正是 连续调用 Capture 方法的区别。
录像:setRepeatingRequest 向camera 底层发送一个 CaptureRequest,底层会不停的发送这个 CaptureRequest。slowmotion : setRepeatingRequestBurst : 向camera 底层发送一组 CaptureRequest,底层会不停的发送这个 CaptureRequest。终止请求:abortCaptures以最快的速度结束当前的 Request ,in-flight captures (属于hal)可能成功也可能失败,input capture Request Queue (属于framework)清空。stopRepeatinginput capture Request Queue (属于framework)清空isReprocessable 判断当前的 session 能否处理 Reprocessable Capture RequestgetDevice 获取当前 Session 绑定的 Camera Device(logic camera)
CameraCaptureSession相关推荐
- Android Camera2 之 CameraCaptureSession 详解
一.简介 CameraCaptureSession 是一个事务,用来向相机设备发送获取图像的请求. 主要有 setRepeatingRequest() 和 capture() 方法.setRepeat ...
- 安卓5.0API的特性,多了些什么
Android 5.0 (LOLLIPOP) 为用户和应用开发者提供了新的功能.本文档介绍了最值得注意的新 API. Android Lollipop 集锦. 要构建 Android 5.0 版应用, ...
- fritz_如何使用Fritz.ai将机器学习应用于Android
fritz 本文介绍如何使用Fritz.ai将机器学习应用于Android . 在深入探讨如何开发机器学习Android应用程序的细节之前,简要介绍一下什么是Fritz.ai平台很有用. 如您所知,机 ...
- android Camera2
控件: import android.view.TextureView; 这个是代码: https://github.com/plumcot/Camera2Demo/blob/master/src/c ...
- android.hardware.camera2使用指南
API 21中将原来的camera API弃用转而推荐使用新增的camera2 API,这是一个大的动作,因为新API换了架构,让开发者用起来更难了. 先来看看camera2包架构示意图: 这 ...
- android6.0源码分析之Camera API2.0下的Capture流程分析
前面分析preview的时候,当预览成功后,会使能ShutterButton,即可以进行拍照,定位到ShutterButton的监听事件为onShutterButtonClick方法: <cod ...
- android6.0源码分析之Camera API2.0下的Preview(预览)流程分析
1.Camera2 preview的应用层流程分析 preview流程都是从startPreview开始的,所以来看startPreview方法的代码: <code class="hl ...
- Android Camera的进化史
Part1: Camera1(Android的傻瓜机) Camera1 的开发中,打开相机,设置参数的过程是同步的,就跟用户实际使用camera的操作步骤一样.但是如果有耗时情况发生时,会导致整个调 ...
- Android中的拍照camera和camera2
在android我们可以调用系统的相机来进行照相,当然也可以设计自己的照相页面,通过surface进行预览,通过camera api来进行拍照即可. 在Android 5.0之后google推荐使用的 ...
最新文章
- C++中的运算符重载
- 实用ISA Server 2006之一: 简介
- 瞬间几千次的重复提交,我用 Spring Boot + Redis 扛住了!
- 探秘JVM(二)——编译进行时
- php中unset函数是在哪一章_PHP unset函数原理及使用方法解析
- Akka应用模式:分布式应用程序设计实践指南pdf
- Codewar-008: Playing with passphrases 玩玩加密口令
- MySQL中cast()与convert()的用法
- networkx edge 属性_python图算法库Networkx笔记-第一章
- 创维数字--驱动开发岗位面试总结
- LaTeX使用tikz-imagelabels宏包在图片上添加标签、文字等
- php array pluck,laravel辅助函数-数组
- 找靓机用计算机表白,找靓机怎么样-2300元的鼠标用起来怎么样?Finalmouse Ultralight Phantom体验...
- qs—对象序列化为查询参数和URL解析成对象的库
- 【Python金融量化】零基础如何开始学?
- 元学习、迁移学习、对比学习、自监督学习与少样本学习的关系解读
- 几款浏览器兼容性测试工具
- The default interactive shell is now zsh.
- 2022年湖南省高职单招(面试)考试强化训练及答案
- 计算机三级-数据库-总结归纳(四)
热门文章
- 解决某物流企业二维码打印问题
- 快速入门:Slurm资源管理与作业调度系统
- 胶装一般多少钱一本?网上打印资料胶装便宜的地方
- 游戏安全反汇编分析开启取消自动攻击call
- recvfrom: Bad address
- 如何将图片识别为可编辑的Word文件
- python类实例化 输入参数名字 下划线_Python 用下划线作为变量前缀和后缀指定特殊变量...
- 利用trie Tree 解决查找连续子字符串的问题
- Android——一个简单的音乐APP(二)
- python快速入门神器 知乎_太香了!墙裂推荐6个Python数据分析神器!!