现在随着音视频的应用越来越多,直接使用系统原生相机进行拍照裁剪和拍视频,已经不能满足需求了。
需要通过Camera API进行自定义相机开发,满足一些复杂的业务场景,开篇先介绍Camera的基础知识,为后面Camera开发提供支持。
基础知识
Android Framework提供Camera API来实现拍照与录制视频的功能,目前Android有三类API,
Camera
此类是用于控制设备相机的旧版 API,现已弃用,在Android5.0以下使用
Camera2
此软件包是用于控制设备相机的主要 API,Android5.0以上使用
CameraX
基于Camera 2 API封装,简化了开发流程,并增加生命周期控制
相关开发类
android.hardware.camera2
控制相机的核心API,使用它可以实现拍照和录制视频的功能。
Camera
此类是用于控制设备相机的旧版 API,现已弃用。
SurfaceView
此类用于向用户呈现实时相机预览。
TextureView
也是用于实时相机预览,Android4.0之后引入
Intent
MediaStore.ACTION_IMAGE_CAPTURE 或 MediaStore.ACTION_VIDEO_CAPTURE 的 Intent 操作类型可用于捕获图像或视频,而无需直接使用 Camera 对象。
术语
ISO(感光度)
CMOS(或胶卷)对光线的敏感程度,用ISO100的胶卷,