我正在尝试遵循我在网络上找到的代码示例(Gabriel Tanner、Ray Wenderlich、Official Introduction),但我通常在第一行就遇到困难:
CameraX.unbindAll()
编译器提示 unbindAll()
是未解析的引用 (Kotlin)。来自 here 的示例代码是唯一不使用它的引用。但是所有其他示例代码都有它,包括 Google 自己的视频。
我什至无法在 Google 的文档中找到任何对此方法的引用。发生了什么?过去几个月的变化是否已经让所有这些激动人心的介绍都过时了?
我正在评估 CameraX,看看我们公司是否值得花时间将我们的代码从 Camera2 切换到 CameraX。如果事情变化如此之快, future 发生重大代码更改的可能性有多大?
最佳答案
CameraX 自去年首次推出以来经历了一些变化,这很正常,因为它仍处于 Alpha 阶段,API 表面在整个 alpha 版本中发生了一些变化,但自从它进入 Beta 阶段以来,它的公共(public) API 已经变得更加稳定。
回到您的问题,CameraX 中的绑定(bind)和解除绑定(bind)用例不再通过 CameraX
类完成,而是现在使用 ProcessCameraProvider.bindToLifecycle() 完成。将一个或多个用例绑定(bind)到生命周期,ProcessCameraProvider.unbind()取消绑定(bind)一个或多个用例,以及ProcessCameraProvider.unbindAll()解除绑定(bind)所有绑定(bind)的用例。
您用作引用的教程已经过时,甚至去年 google I/O 的视频也已过时,因为其中的代码 fragment 引用的是 CameraX 的第一个 alpha 版本。但是the codelab的链接您提到的几乎是最新的,它是由 Google 维护的官方 CameraX 代码实验室。你也可以看看the official documentation CameraX,它比您引用的教程更新。
关于android - CameraX.unbindAll() 方法发生了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63249242/