【问题标题】:In android if I have min api 21 does cameraX cover all devices or do I need to maintain a camera1 implementation for older devices?在android中,如果我有min api 21,cameraX是否覆盖所有设备,还是我需要为旧设备维护camera1实现?
【发布时间】:2021-04-19 18:58:27
【问题描述】:

我目前有一个应用程序,其 api 至少为 21,它同时具有 camera1 和 camera2 实现。根据以下代码,我选择是使用 camera1 还是 camera2:

            val cameraIds = manager.cameraIdList
            for (id in cameraIds) {
                val info = manager.getCameraCharacteristics(id)
                val facing = info.get(CameraCharacteristics.LENS_FACING)!!

                val level = info.get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL)!!
                val hasFullLevel = level == CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_FULL

                val syncLatency = info.get(CameraCharacteristics.SYNC_MAX_LATENCY)!!
                val hasEnoughCapability = syncLatency == CameraCharacteristics.SYNC_MAX_LATENCY_PER_FRAME_CONTROL

                // All these are guaranteed by
                // CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_FULL, but checking
                // for only the things we care about expands range of devices we can run on.
                // We want:
                //  - Back-facing camera
                //  - Per-frame synchronization (so that exposure can be changed every frame)
                if (facing == CameraCharacteristics.LENS_FACING_BACK && (hasFullLevel || hasEnoughCapability)) {
                    // Found suitable camera - get info, open, and set up outputs
                    foundCamera = true
                    break
                }
            }

我计划在不久的将来对 cameraX 进行更新,并且我希望放弃 camera1 实现并拥有一个统一的 cameraX 实现。有没有人有使用 cameraX 的经验,它是否可以处理我之前使用 camera1 后备的所有情况?我们的许多客户都在发展中市场,因此我们需要尽可能多地支持旧设备。

【问题讨论】:

    标签: android android-camera


    【解决方案1】:

    cameraX 没有 Camera API1 后备选项。他们依赖于 camera2 LEGACY 支持,但是是的,该库包含许多针对特定问题的解决方法。请查看他们测试的设备列表:https://developer.android.com/training/camerax/devices

    您没有解释您之前使用 camera1 后备的“所有情况”是什么,但如果您有这样的列表,您可以通过 release notes 检查当前版本是否解决了这些问题图书馆。如果不是,欢迎您将它们添加到issues list

    【讨论】:

      猜你喜欢
      • 2018-07-22
      • 1970-01-01
      • 2016-11-06
      • 1970-01-01
      • 1970-01-01
      • 2013-03-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多