开发者

Android: record video with "continuous" auto-focus

开发者 https://www.devze.com 2023-04-12 23:13 出处:网络
I work on video recording; everything works except for requesting continuous focus. This is what I do (tried both in surfaceCreated and surfaceChanged with no success):

I work on video recording; everything works except for requesting continuous focus. This is what I do (tried both in surfaceCreated and surfaceChanged with no success):

cam开发者_运维知识库era = Camera.open();
camera.setPreviewDisplay(holder);

Parameters parameters = camera.getParameters();

then I do either

parameters.setFocusMode(Parameters.FOCUS_MODE_CONTINUOUS_VIDEO);

or

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

both should do the same thing; then I set parameters with

camera.setParameters(parameters);

This last line always crashes! So do I miss something?

By the way, I test on rather new devices like Desire HD, Galaxy S, Galaxy Tab 7 and 10.1, which must have support for continuous auto-focus; at least their built-in camera apps support it.


You should check if Continuous Auto Focus is supported by the device. This is something that works for me, please give it a try.

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


Ok, I have sort of solution to this problem: I was able to manually focus camera calling Camera#autoFocus(...).

This still has serious issues. First, calling autofocus while shooting video is not working on some Samsung devices. Also it's not a good idea to force your users to manually focus the camera during video recording.

So if you were able to normally focus your videos while recording - your advice would be very helpful.

0

精彩评论

暂无评论...
验证码 换一张
取 消