网站设置二级域名好吗,苏州住房与城乡建设局网站,微型营销网站制作,企业网站建设能解决什么问题引言 Android 的camera 发展经历了3个阶段 #xff1a; camera1 -》camera2 -》cameraX。 正文 Camera1 Camera1 的开发中#xff0c;打开相机#xff0c;设置参数的过程是同步的#xff0c;就跟用户实际使用camera的操作步骤一样。但是如果有耗时情况发生时#xff0c;会…引言 Android 的camera 发展经历了3个阶段 camera1 -》camera2 -》cameraX。 正文 Camera1 Camera1 的开发中打开相机设置参数的过程是同步的就跟用户实际使用camera的操作步骤一样。但是如果有耗时情况发生时会导致整个调用线程等待
存在的限制
开发者如果想要个性化设置camera效果无法手动设置调整参数需要依靠第三方算法对于回调的数据进行处理NV21。而且不同手机的回调数据效果都是不一样的采用第三方算法调整通常效果不好发者所能获取的Camera状态信息有限
camera1 的开发过程比较简单对于常规视频采集如果只要一般的预览功能是没问题的然而如果想要挖掘Camera更多的功能camera1无法满足于是有了camera2. Camera2
Camera2 的开发中camera的生命周期都是异步的即发送请求等待回调的client-service模式关键回调主要是三个
1CameraDevice.StateCallback ///比如线程A发送打开相机请求, 线程B中收到相机状态回调线程B中与cameraDevice建立会话设置参数数据回调处理
2CameraCaptureSession.StateCallback ///与CameraDevice建立会话后收到的会话状态回调
3ImageReader.OnImageAvailableListener // 开发者可以直接获取并且操作的数据回调
特点
通过跟相机建立的会话可以更加精细的调整Camera参数比如ISO感光度曝光时间曝光补偿……如果开发者想要更多自己的定制也可以直接使用回调数据YUV488MultiCamera的支持
Multi-Camera 的支持
系统Android P目前支持的multi-camera的设备 Pixel 3 mate20 系列Multi-Camera 新功能
1更好的光学变焦之前的方式通常使用数码变焦或者是单个摄像头的光学变焦来达到变焦的效果 通过多摄像头的变焦方式无论远景还是近景都可以采到更好质量的数据。
2景深计算通过多摄像头的景深不同可以得到每一帧图片中不同物体的景深从而更好的区分前景或者后景。应用范围背景虚化背景替换现实增强。
3更广的视角更广的视角带来鱼眼镜头的畸变效果畸变矫正功能。 CaptureRequest.DISTORTION_CORRECTION_MODE
4人脸识别功能跟畸变效果一样自带人脸识别功能。应用范围人脸裁剪人脸特效。 CaptureResult.STATISTICS_FACE_DETECT_MODE
5多路流同时采集场景包括单摄像头输出多流多摄像头输出多流 normalOutputConfigImageReader.setPhysicalCameraId(normalLensId) wideOutputConfigImageReader.setPhysicalCameraId(wideAngleId) params.previewBuilder?.addTarget(normalSurface) params.previewBuilder?.addTarget(wideSurface)
存在的问题
更耗内存更耗电趋势单个手机中支持更多的摄像头
Camera2 虽然给开发者带来了相机的更多可玩性然而android的碎片化导致很多设备的兼容性问题频繁发生。尤其国内的手机厂商对camera2 的支持程度各不相同
所以Camera2的开发难度更多的是在兼容性于是有了CameraX。 CameraX
CameraX是一个Jetpack库旨在帮助开发者更轻松地开发相机应用。它基于Camera2 API构建提供了更高级别的抽象和封装简化了相机功能的实现过程。CameraX支持大多数常见的相机用例包括预览、图片拍摄、图片分析和视频拍摄等并且具有广泛的设备兼容性覆盖了98%以上的现有Android设备。 特点
更简单易用的API更少的代码量使开发者更专注业务的个性化实现。比如对采集到图片做分析处理。更好的兼容性减少不同设备适配烦恼包括宽高比、屏幕方向、旋转、预览大小和高分辨率图片大小。数据分析: 开发者依然可以对数据进行个性化处理。第三方Camera特效拓展对于一些手机厂商特定实现的camera特效开发者也可以使用。 总结 我们在开发过程中最好还是用CameraX。