6

在我当前的应用程序中,我有一个类包含一个 Camera 对象的实例并尝试执行以下操作:

1) 等待指定时间,例如什么都不做(通过 TimerTask 完成) 2) 通过 autoFocus 请求聚焦 3) 在 autoFocus 回调中,请求 OneShotPreviewCallback 4) 在预览回调中,保存图像 5) 重复

虽然白平衡在第一次自动对焦之前工作正常,但在第一次对焦完成后停止。好吧,当然我查了 API,在 autoFocus 描述中有一个有趣的语句。

但自动对焦程序可能会在对焦期间暂时停止自动曝光和自动白平衡。

但似乎它只是暂时的,而是永久的。有趣的是,在随后调用 autoFocus 时,相机会再次尝试调整白化,但正确的值大多只有第二个或第三个 autoFocus。

我也尝试在代码中设置白平衡,但它没有改变任何东西。

setWhiteBalance(Camera.Parameters.WHITE_BALANCE_AUTO);

有没有其他人知道这个问题,或者我错过了一些观点?我知道我可以永久调用 autoFocus 来强制进行白平衡,但这对我来说似乎不是最佳方式,因为在第一次调用 auf autoFocus 之前,它工作得非常好。

PS:我正在使用 Android 4.0.3 的三星 Galaxy S2 上进行测试。

4

3 回答 3

4

我在三星 Galaxy 2 Duos 2 上遇到过类似的问题。在这种情况下,自动曝光设置已停止工作,而不是 WB。我试图循环(开/关)自动曝光参数,它对我有用。

mCamera.autoFocus(new Camera.AutoFocusCallback() {

    @Override
    public void onAutoFocus(boolean b, Camera camera) {

        Camera.Parameters params = camera.getParameters();
        if (params.isAutoExposureLockSupported()) {
            params.setAutoExposureLock(true);
            camera.setParameters(params);

            params = camera.getParameters();
            params.setAutoExposureLock(false);
            camera.setParameters(params);
        }
     }

 });
于 2014-05-27T14:38:50.170 回答
1

我在三星 Galaxy Ace 上遇到了类似的问题 - 在第一次自动对焦后,相机白平衡会关闭并且不会再次打开,无论我做了多少次自动对焦。

由于没有 API 方法可以告诉相机恢复白平衡,并且在自动对焦回调中重置相机参数并不能解决问题,我猜这是三星手机相机驱动程序中的错误 - 我已经尝试过我的应用程序使用不同的手机并且仅在这款三星 Galaxy Ace(GT-S5830;更新至 Android 2.3.3)上,自动对焦后相机白平衡不会恢复。

也许我们应该在 developer.samsung.com 上开一张 bug 票?

于 2012-06-27T16:09:05.657 回答
-1

It seems that mCamera.stopPreview(); mCamera.startPreview(); in AutoFocusCallback can enable auto exposure again, but bringing a very short pause on the preview as side effect.

于 2014-02-25T19:38:36.787 回答