首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CameraX ProcessCameraProvider与CameraController -在什么情况下使用哪个?

CameraX ProcessCameraProvider与CameraController -在什么情况下使用哪个?
EN

Stack Overflow用户
提问于 2021-02-17 20:59:33
回答 1查看 592关注 0票数 2

谁能澄清一下,我什么时候应该使用androidx.camera.view.CameraController,什么时候使用androidx.camera.lifecycle.ProcessCameraProvider?两者似乎都能够使用生命周期事件启动/停止相机,处理不同的用例(预览、拍照、图像分析)。两者都可以与androidx.camera.lifecycle.PreviewView一起使用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-18 01:05:17

ProcessCameraProvider是CameraX生命周期工件的一部分。它提供对部分/所有设备摄像头的访问,允许将摄像头的生命周期(打开/关闭时)附加到lifecycleOwner,并具有应用程序进程的范围(它是一个单例)。就如何使用它而言,它是CameraX中的一种低级应用编程接口,在某种意义上说,当你使用它时,你需要初始化它,创建和配置你的用例(即PreviewImageAnalysisImageCapture),将它们绑定到LifecycleOwner,然后如果你愿意,通过访问绑定的摄像头的CameraInfoCameraControl实例与摄像头进行交互。是的,您可以在此场景中使用PreviewView,但您必须手动将其附加到Preview用例中。

CameraController是CameraX视图工件的一部分,它建立在CameraX提供的核心API之上,提供了一个简单的API,可以轻松地插入到应用程序中并随时可用。CameraX的视图工件主要提供PreviewViewCameraController,后者处理所有相机设置,如果您使用了ProcessCameraProvider等API,则需要手动完成所有设置。此外,CameraController处理设备旋转(以确保其用例以正确的方向接收来自摄像头的帧),并提供所见即所得的体验,确保其用例的输出与PreviewView显示的内容相匹配,并在其连接的PreviewView上处理触摸事件(点击聚焦、按压缩放)。您可以查看this article,看看它开箱即用提供了什么。

您选择使用哪种应用程序接口取决于您的使用需求,CameraController为您提供/处理许多CameraX的核心功能,但在用例配置方面灵活性较差。因此,如果您需要对用例进行更高级的控制(例如设置其分辨率),则可能必须使用ProcessCameraProvider手动设置。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66242428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档