在视频中提到,目前有很多应用都开始接入了 CameraX,比如 Camera360、Tik Tok 等。
简述 Camera 开发
关于 Camera 的开发,之前也有写过相关的文章🤔
对于一个简单能用的 Camera 应用(Demo 级别)来说,关注两个方面就好了:预览和拍摄。
而预览和拍摄的图像都受到分辨率、方向的影响。Camera 最必备的功能就是能针对预览和拍摄提供两套分辨率,因此就得区分场景去设置。
对于拍摄还好说一点,要获得最好的图像质量,就选择同比例中分辨率最大的吧。
而预览的图像最终要呈现到 Android 的 Surface 上,因此选择分辨率的时候要考虑 Surface 的宽高比例,不要出现比例不匹配导致图像拉伸的现象。
另外,如果要做美颜、滤镜类的应用,就要把 Camera 预览的图像放到 OpenGL 渲染的线程上去,然后由 OpenGL 去做图像相关的操作,也就没 Camera 什么事了。等到拍摄图片时,可以由 OpenGL 去获取图像内容,也可以由 Camera 获得图像内容,然后经过 OpenGL 做离屏处理~~~
至于 Camera 开发的其他功能,比如对焦、曝光、白平衡、HDR 等操作,不一定所有的 Camera 都能够支持,而且也可以在上面的基础上当做 Camera 的一个 feature 去拓展开发,并不算难事,这也是一个 Camera 开发工程师进阶所要掌握的内容~~
CameraX 开发实践
CameraX 目前的版本是 1.0.0-alpha01
,在使用时要添加如下的依赖:
// CameraX
def camerax_version = “1.0.0-alpha01”
implementation “androidx.camera:camera-core: c a m e r a x v e r s i o n " i m p l e m e n t a t i o n " a n d r o i d x . c a