Android Camera的进化史

本文介绍了Android相机从Camera1到Camera2再到CameraX的进化过程。Camera1开发简单,但功能受限;Camera2提供异步生命周期和更精细的参数调整,但存在兼容性问题;CameraX作为Jetpack的一部分,简化了API,提高了兼容性,允许开发者专注于业务实现和第三方特效拓展。文中还提及了相机角度获取、坐标系统、数据处理等开发细节。
摘要由CSDN通过智能技术生成

Part1:  Camera1Android的傻瓜机)

  • Camera1 的开发中,打开相机,设置参数的过程是同步的,就跟用户实际使用camera的操作步骤一样。但是如果有耗时情况发生时,会导致整个调用线程等待;
  • 开发者如果想要个性化设置camera效果,无法手动设置调整参数,需要依靠第三方算法对于回调的数据进行处理(NV21)。而且不同手机的回调数据效果都是不一样的,采用第三方算法调整,通常效果不好;
  • 开发者所能获取的Camera状态信息有限;

camera1 的开发过程比较简单,对于常规视频采集,如果只要一般的预览功能,是没问题的,然而如果想要挖掘Camera更多的功能,camera1无法满足,于是有了camera2.

Part2 Camera2Android的单反)

  • Camera2 的开发中,camera的生命周期都是异步的,即发送请求,等待回调的client-service模式;
  • 系统: Android L+
  • 这里的关键回调主要是三个:

1CameraDevice.StateCallback ///比如线程A发送打开相机请求, 线程B中收到相机状态回调,线程B中与cameraDevice建立会话,设置参数,数据回调处理;

2CameraCaptureSession.StateCallback ///CameraDevice建立会话后,收到的会话状态回调;

3ImageReader.OnImageAvailableListener // 开发者可以直接获取并且操作的数据回调;

  • 通过跟相机建立的会话,可以更加精细的调整Camera参数:比如ISO感光度,曝光时间,曝光补偿……
  • 如果开发者想要更多自己的定制,也可以直接使用回调数据(YUV488);<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值