2011-10-13 77 views
6

我从事录像;除了要求持续关注之外,一切都可行这是我做什么(都尝试在surfaceCreated和surfaceChanged没有成功):Android:使用“连续”自动对焦录制视频

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这样的新设备,它们必须支持连续自动对焦;至少他们的内置摄像头应用程序支持它。

+0

什么显示在错误日志中? – ingsaurabh

+0

感谢您的及时回复,ingsaurabh。这是(大部分没有意义的崩溃报告): 'java.lang.RuntimeException:setParameters failed android.hardware.Camera.native_setParameters(Native Method) 在com.mr.RecorderScreen.surfaceCreated(RecorderScreen.java:76)' – myself

+0

有没有人管理**在Android中根据自动对焦**录制视频?如果是这样,请张贴一些概述在这里应该做什么... – myself

回答

4

好吧,我有这种问题的解决方案:我能够手动对焦相机调用相机#autoFocus(...)。

这仍然有严重的问题。首先,在拍摄视频时调用自动对焦在某些三星设备上不起作用。此外,强制用户在视频录制过程中手动对焦相机并不是一个好主意。

所以如果你能够正常集中你的视频,而录音 - 你的意见将是非常有益的。

5

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

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

对不起,以延迟响应。我尝试了类似的代码,但问题是这些设备不支持持续聚焦。 – myself