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相关推荐

  1. Android Camera2 之 CameraCaptureSession 详解

    一.简介 CameraCaptureSession 是一个事务,用来向相机设备发送获取图像的请求. 主要有 setRepeatingRequest() 和 capture() 方法.setRepeat ...

  2. 安卓5.0API的特性,多了些什么

    Android 5.0 (LOLLIPOP) 为用户和应用开发者提供了新的功能.本文档介绍了最值得注意的新 API. Android Lollipop 集锦. 要构建 Android 5.0 版应用, ...

  3. fritz_如何使用Fritz.ai将机器学习应用于Android

    fritz 本文介绍如何使用Fritz.ai将机器学习应用于Android . 在深入探讨如何开发机器学习Android应用程序的细节之前,简要介绍一下什么是Fritz.ai平台很有用. 如您所知,机 ...

  4. android Camera2

    控件: import android.view.TextureView; 这个是代码: https://github.com/plumcot/Camera2Demo/blob/master/src/c ...

  5. android.hardware.camera2使用指南

    API 21中将原来的camera API弃用转而推荐使用新增的camera2 API,这是一个大的动作,因为新API换了架构,让开发者用起来更难了.  先来看看camera2包架构示意图:    这 ...

  6. android6.0源码分析之Camera API2.0下的Capture流程分析

    前面分析preview的时候,当预览成功后,会使能ShutterButton,即可以进行拍照,定位到ShutterButton的监听事件为onShutterButtonClick方法: <cod ...

  7. android6.0源码分析之Camera API2.0下的Preview(预览)流程分析

    1.Camera2 preview的应用层流程分析 preview流程都是从startPreview开始的,所以来看startPreview方法的代码: <code class="hl ...

  8. Android Camera的进化史

    Part1:  Camera1(Android的傻瓜机) Camera1 的开发中,打开相机,设置参数的过程是同步的,就跟用户实际使用camera的操作步骤一样.但是如果有耗时情况发生时,会导致整个调 ...

  9. Android中的拍照camera和camera2

    在android我们可以调用系统的相机来进行照相,当然也可以设计自己的照相页面,通过surface进行预览,通过camera api来进行拍照即可. 在Android 5.0之后google推荐使用的 ...

最新文章

  1. C++中的运算符重载
  2. 实用ISA Server 2006之一: 简介
  3. 瞬间几千次的重复提交,我用 Spring Boot + Redis 扛住了!
  4. 探秘JVM(二)——编译进行时
  5. php中unset函数是在哪一章_PHP unset函数原理及使用方法解析
  6. Akka应用模式:分布式应用程序设计实践指南pdf
  7. Codewar-008: Playing with passphrases 玩玩加密口令
  8. MySQL中cast()与convert()的用法
  9. networkx edge 属性_python图算法库Networkx笔记-第一章
  10. 创维数字--驱动开发岗位面试总结
  11. LaTeX使用tikz-imagelabels宏包在图片上添加标签、文字等
  12. php array pluck,laravel辅助函数-数组
  13. 找靓机用计算机表白,找靓机怎么样-2300元的鼠标用起来怎么样?Finalmouse Ultralight Phantom体验...
  14. qs—对象序列化为查询参数和URL解析成对象的库
  15. 【Python金融量化】零基础如何开始学?
  16. 元学习、迁移学习、对比学习、自监督学习与少样本学习的关系解读
  17. 几款浏览器兼容性测试工具
  18. The default interactive shell is now zsh.
  19. 2022年湖南省高职单招(面试)考试强化训练及答案
  20. 计算机三级-数据库-总结归纳(四)

热门文章

  1. 解决某物流企业二维码打印问题
  2. 快速入门:Slurm资源管理与作业调度系统
  3. 胶装一般多少钱一本?网上打印资料胶装便宜的地方
  4. 游戏安全反汇编分析开启取消自动攻击call
  5. recvfrom: Bad address
  6. 如何将图片识别为可编辑的Word文件
  7. python类实例化 输入参数名字 下划线_Python 用下划线作为变量前缀和后缀指定特殊变量...
  8. 利用trie Tree 解决查找连续子字符串的问题
  9. Android——一个简单的音乐APP(二)
  10. python快速入门神器 知乎_太香了!墙裂推荐6个Python数据分析神器!!