Google更新其Android开发函数库Jetpack中的相机控制函数库CameraX,现在提供1.2 Beta测试版本。这个新版本更紧密集成ML Kit,让开发者在应用程序使用ML Kit时,减少样板程序代码,并且支持零快门延迟功能,让CameraX相机应用程序更快地即时拍摄动作画面。
CameraX函数库提供了许多API,让开发者能够以简单的API,在应用程序中添加复杂的相机功能,包括在相机应用程序中使用机器学习技术,Google的ML Kit提供多种设备端视觉API,像是侦测人脸、条码、文本和对象等,而CameraX 1.2紧密集成ML Kit,使开发者能够简单开发高端相机功能。
另外,由于许多画面一闪即逝,用户点击快门按钮时,常因为延迟而错失拍摄的最佳时刻,CameraX 1.2提供零快门延迟,开发者在设置拍摄模式时,除了最佳品质、最低延迟两个原本的模式外,现在还多了以零延迟模式拍照的选择,当设备不支持零延迟,则CameraX会自动回退到最低延迟模式。
Google解释零快门延迟的做法,该功能使用环形缓冲区(Circular Buffer),当照片被捕捉时,实际上系统已经在该时间点前后拍摄了一系列的照片,存储到环形缓冲区中,CameraX会从环形缓冲区选出一张最接近按下快门按钮时刻的照片。
除了目前这个功能仍在实验阶段,开发者要小心使用之外,官方还提到,维持环形缓冲区运行属于计算密集的工作,因此没办法在使用VideoCapture或是扩展组件时使用,而且也会增加应用程序所占用的内存足迹。