【问题标题】:Android auto focus when continuous auto focus modes are not supported不支持连续自动对焦模式时的 Android 自动对焦
【发布时间】:2014-06-26 12:49:37
【问题描述】:

我的应用中有一个摄像头,我想让它像手机的摄像头一样连续自动对焦。我找到了 FOCUS_MODE_CONTINUOUS_VIDEOFOCUS_MODE_CONTINUOUS_PICTURE 模式,但我正在测试的一些 HTC Gingerbread 手机不支持它们。

这是我正在做的,以确定我是否可以使用这些模式:

        Camera.Parameters parameters = mCamera.getParameters();
        List<String> supportedFocusModes = parameters.getSupportedFocusModes();

        if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH &&
            supportedFocusModes.contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE)) {
            parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
        }
        else if (supportedFocusModes.contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO)) {
            parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO);
        }
        else if (supportedFocusModes.contains(Camera.Parameters.FOCUS_MODE_AUTO)) {
            // auto focus on request only
            parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
        }

在几款不同的 Gingerbread HTC 手机上运行我没有恢复连续模式,但我得到了“自动”。这让我可以按需自动对焦(当我调用 mCamera.autoFocus(null) 时,但如果用户移动相机,相机将不会重新对焦。

我无法将对焦模式设置为相机不支持的任何东西,如果我这样做了,它会显示为空白。

我尝试的一个解决方案是在计时器上调用mCamera.autoFocus(null)。这会导致相机不断重新对焦,即使它已经对焦。

有没有办法在这些手机上实现持续的自动对焦体验?当我在这些手机上查看 HTC 的相机应用程序时,它确实具有持续的自动对焦功能 - 当您在相机周围移动时,它会重新对焦,并且在照片对焦后不会继续重新对焦。

【问题讨论】:

  • 在这上面花了很多时间之后,我正在研究解决方案here

标签: android android-camera autofocus


【解决方案1】:

我们需要支持非常广泛的手机。我最终的解决方案是对每种情况进行不同的处理。

对于不支持连续自动对焦的手机场景,我实现了一个实用程序,使用SensorManager 监听加速度计,并在用户移动相机时触发mCamera.autoFocus(...)

还有一些老平板只支持定焦(谁会用这样的东西!),在这种情况下需要立即拍照——而不是在焦点回调上。

对于大多数现代手机,上面的代码 sn-p 可以使用 FOCUS_MODE_CONTINUOUS_PICTURE

【讨论】:

  • kos,我有一个类似的用例要实现。您能否提供有关您的此实用程序的更多详细信息?
  • @kos,请您解释一下您如何定义设备是否支持连续自动对焦功能?
【解决方案2】:

我在我的三星 S4 上得到了一个类似的 pb,我用以下方法解决了它:

camera.setParameters(parameters);
    camera.autoFocus(null);

这是 Google 文档 here 中的建议。

要使相机参数生效,您的应用程序必须调用setParameters(Camera.Parameters)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-07
    • 1970-01-01
    • 1970-01-01
    • 2018-03-14
    • 1970-01-01
    • 2011-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多