【问题标题】:CameraX: Unable to check if extension is available or notCameraX:无法检查扩展是否可用
【发布时间】:2021-08-30 13:29:09
【问题描述】:

我在向我的 TabLayout 添加选项卡时尝试检查给定扩展是否可用,但这里似乎存在一些严重问题(或者我可能不知道某些事情)。

extensionsManager.isExtensionAvailable((CameraProvider)cameraProvider, cameraSelector, ExtensionMode.NIGHT);

如果 ProcessCameraProviderCameraProvider 的子类型,则此代码将有效,但根据 Android Studio 似乎并非如此。

此外,如果ProcessCameraProvider 不是CameraProvider 的子类型,此处的代码 sn-p 将不起作用。 (https://developer.android.com/training/camerax/vendor-extensions#enable-effect-capture)

我是不知道某事还是我引用了错误的实例...有人可以帮我解决这个问题吗?

这是我正在使用的所有 camerax 扩展及其版本号。

【问题讨论】:

  • 为什么要将ProcessCameraProvider 转换为CameraProvider?没有必要这样做。据我所知,使用 ProcessCameraProvider 对象而不将其转换为 CameraProvider 就可以了。
  • 不是真的,目前(在检查的库代码中)ProcessCameraProvider 没有实现CameraProvider 接口。铸造只是为了显示该错误。没有它,Android Studio 只会说需要 CameraProvider 的实例。
  • 这是我获得ProcessCameraProvider的实例:val cameraProvider: ProcessCameraProvider = cameraProviderFuture.get(),然后在检查扩展可用性时我只是使用这个对象,它工作得很好,没有错误。
  • 这很奇怪......也许这只是库的 Java 端的问题
  • 试试this link。我建议您联系开发人员 - 在链接中发送电子邮件,并询问他们,他们会很快回复。

标签: android android-camera android-camerax


【解决方案1】:

ProcessCameraProvider 实际上是CameraProvider 的子类型(您可以从文档中注意到)。我相信从1.1.0-alpha02 版本开始就是这种情况。

确保您使用的是正确版本的库,即camera-camera2camera-lifecycle

【讨论】:

  • 非常感谢您的回答。我在问题描述的末尾以图像的形式添加了项目中使用的每个扩展(与 Ca​​meraX 相关)的版本号。我尽量保持稳定。您能帮我解答答案中的版本号吗?提前致谢
  • 我已经在 GitHub 上提交了一个同样的问题。 github.com/android/camera-samples/issues/413
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-02
  • 1970-01-01
  • 2016-01-01
  • 2019-11-29
  • 2020-03-20
  • 2018-08-27
相关资源
最近更新 更多