Android: запись видео с "непрерывной" автофокусом

Я работаю над видеозаписью; все работает, кроме запроса непрерывной фокусировки. Это то, что я делаю (пробовал и в 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, которые должны иметь поддержку непрерывной автофокуса; по крайней мере, их встроенные приложения камеры поддерживают его.

2 ответов


вы должны проверить, поддерживается ли непрерывная автоматическая фокусировка устройством. Это то, что работает для меня, пожалуйста, попробуйте.

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;
}

хорошо, у меня есть решение этой проблемы: я смог вручную сфокусировать камеру, вызывающую камеру#autoFocus(...).

Это все еще имеет серьезные проблемы. Во-первых, вызов автофокус во время съемки видео не работает на некоторых устройствах Samsung. Также не рекомендуется заставлять пользователей вручную фокусировать камеру во время записи видео.

Итак, если бы вы могли нормально фокус видео во время записи-ваш совет будет очень полезный.