6

我从事录像工作;除了要求持续专注之外,一切正常。这就是我所做的(在surfaceCreated 和surfaceChanged 中都尝试过,但均未成功):

camera = Camera.open();
camera.setPreviewDisplay(holder);

Parameters parameters = camera.getParameters();

然后我要么

parameters.setFocusMode(Parameters.FOCUS_MODE_CONTINUOUS_VIDEO);

或者

parameters.set("focus-mode", "continuous-video");

两者都应该做同样的事情;然后我设置参数

camera.setParameters(parameters);

最后一行总是崩溃!所以我错过了什么吗?

顺便说一句,我在 Desire HD、Galaxy S、Galaxy Tab 7 和 10.1 等相当新的设备上进行了测试,这些设备必须支持连续自动对焦;至少他们的内置相机应用程序支持它。

4

2 回答 2

6

您应该检查设备是否支持连续自动对焦。这对我有用,请试一试。

boolean startContinuousAutoFocus() {

    Camera.Parameters params = mCamera.getParameters();

    List<String> focusModes = params.getSupportedFocusModes();

    String CAF_PICTURE = Parameters.FOCUS_MODE_CONTINUOUS_PICTURE, 
           CAF_VIDEO = Parameters.FOCUS_MODE_CONTINUOUS_VIDEO, 
           supportedMode = focusModes
                   .contains(CAF_PICTURE) ? CAF_PICTURE : focusModes
                   .contains(CAF_VIDEO) ? CAF_VIDEO : "";

    if (!supportedMode.equals("")) {

        params.setFocusMode(supportedMode);
        mCamera.setParameters(params);
        return true;
    }

    return false;
}
于 2012-08-16T07:11:18.920 回答
4

好的,我有解决这个问题的办法:我能够手动对焦相机调用 Camera#autoFocus(...)。

这仍然存在严重的问题。首先,在某些三星设备上无法在拍摄视频时调用自动对焦。此外,强制用户在视频录制期间手动对焦相机也不是一个好主意。

因此,如果您能够在录制时正常集中视频 - 您的建议将非常有帮助。

于 2011-10-17T07:52:19.410 回答