【发布时间】:2014-06-26 12:49:37
【问题描述】:
我的应用中有一个摄像头,我想让它像手机的摄像头一样连续自动对焦。我找到了 FOCUS_MODE_CONTINUOUS_VIDEO 和 FOCUS_MODE_CONTINUOUS_PICTURE 模式,但我正在测试的一些 HTC Gingerbread 手机不支持它们。
这是我正在做的,以确定我是否可以使用这些模式:
Camera.Parameters parameters = mCamera.getParameters();
List<String> supportedFocusModes = parameters.getSupportedFocusModes();
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH &&
supportedFocusModes.contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE)) {
parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
}
else if (supportedFocusModes.contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO)) {
parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO);
}
else if (supportedFocusModes.contains(Camera.Parameters.FOCUS_MODE_AUTO)) {
// auto focus on request only
parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
}
在几款不同的 Gingerbread HTC 手机上运行我没有恢复连续模式,但我得到了“自动”。这让我可以按需自动对焦(当我调用 mCamera.autoFocus(null) 时,但如果用户移动相机,相机将不会重新对焦。
我无法将对焦模式设置为相机不支持的任何东西,如果我这样做了,它会显示为空白。
我尝试的一个解决方案是在计时器上调用mCamera.autoFocus(null)。这会导致相机不断重新对焦,即使它已经对焦。
有没有办法在这些手机上实现持续的自动对焦体验?当我在这些手机上查看 HTC 的相机应用程序时,它确实具有持续的自动对焦功能 - 当您在相机周围移动时,它会重新对焦,并且在照片对焦后不会继续重新对焦。
【问题讨论】:
-
在这上面花了很多时间之后,我正在研究解决方案here
标签: android android-camera autofocus