返回

无需 SDK 的多摄像头安卓开发,轻装上阵!

Android

在安卓中,开发多摄像头应用,您还能别出心裁!

无论何种智能手机、摄像机或环境,相机就是我们如何与他人、世界互动的一个窗口。多摄像头可带来更好的摄影功能,它就像一双额外的眼睛,能给你自由,方便地以各种风格或角度去发现和捕捉世界。这也就是说,你拥有了全新的创意设计空间。

我们很高兴地宣布,安卓 正式支持多摄像头,已成为我们的全部兼容设备中现成的API。它支持同时访问多个摄像头,实现独立或组合的使用,从而进行广角、远距离变焦、立体影像等摄影。从设备生产的出厂日期到各个型号的上市日期,我们都全程监管,严抓每一刻,确保每一台你手机都能够拥有它。

多摄像头软件栈主要由:

  • 硬件抽象层 (HAL) 模块 - 提供原始设备制造商与安卓相机框架之间的接口。
  • 相机框架 - 提供拍摄模式及高级功能,它们已融合到安卓系统中。
  • 相机服务 - 这是个可选组件,它能够提供额外的控制及效果,如降噪、人像模式等。
  • 基于安卓框架构建的相机应用程序。

如果你对多摄像头API感兴趣,我们建议先从我们的Camera2 API指南开始学习,有了它,你才能快速入门安卓相机框架,深入了解它的各个组件:包括预览、拍照、录制视频、设置曝光和焦点、控制自动对焦等。我们将在后续的博客中仔细探讨多摄像头API的更多细节。同时,你也可以在安卓开发者网站上查阅最新示例和指南。

现在就着手探索多摄像头开发的精彩世界吧,突破传统边界的你,还等什么,立即行动起来吧。

多摄像头API独有魅力何在?

除了兼容性强、支持各种设备外,它还有很多特点让你随时拥有多摄像头安卓开发的超强体验:

  • 统一的API:HAL兼容Camera1和Camera2框架。
  • 硬件的统一性:由于相机硬件已进行过抽象,这意味着你只需将主要的应用程序代码编写一次,就可以编译和打包成兼容Camera1和Camera2框架的安卓应用,然后在支持任意API的设备中部署。
  • 对多摄像头应用的丰富支持:该API不仅可以提供多摄像头支持,还使你能够在应用程序中使用多个摄像头同时拍摄。
  • 对各种3A算法的支持:HAL也支持自动曝光、自动对焦和自动白平衡(3A)算法,这些算法可提升各摄像头传感器的图像质量。

以下是多摄像头API在安卓设备上的运行步骤:

  1. 相机框架会向HAL发送捕获请求。捕获请求包括以下内容:要拍摄的照片或视频分辨率、使用的摄像头、所需的焦点模式、曝光控制等。
  2. HAL将拍摄任务交给Camera硬件并执行以下任务:
    • 根据所需的拍摄格式,打开摄像头传感器。
    • 调整摄像头模块的摄像头校准。
    • 3A算法初始化。
    • 摄像头传感器开始对场景取景。
  3. 当图像帧准备就绪时,摄像头传感器会通知HAL,然后HAL会将图像帧交给摄像头框架。
  4. 相机框架会调用应用程序的回调函数,处理图像帧。

现在就开始吧

多摄像头API的开源实现,已发布在安卓开放源码项目(AOSP)中,现在就动手尝试吧!我们始终欢迎你给我们反馈、提出建议或加入我们,共同建设多摄像头开发社区。

我们渴望看到您用多摄像头API创造的精彩作品。

相关主题

致谢

非常感谢来自合作伙伴开发者团队中的 Vinit Modi、Android Camera PM 和 Emilie Roberts 的帮助。