Android相机自动对焦和FOCUS_MODE_CONTINUOUS_PICTURE

6
我有一个相机应用程序,允许用户拍照。在我的主屏幕上,我使用SurfaceView渲染了一个相机。当用户拍照时,我调用camera.autoFocus并在AutoFocusCallback回调中调用camera.takePicture。然后我保存照片并转到另一个活动以预览照片。当离开相机页面(onPause)时,我调用camera.stopPreview(),当返回时(onResume)调用camera.startPreview()。
相机是使用FOCUS_MODE_CONTINUOUS_PICTURE初始化的。当再次返回相机页面时,我不会回收相机(因为这是一个需要大约2秒钟的缓慢操作),而只会在相机已经初始化过的情况下调用startPreview。
这里是我的问题。在拍摄第一张照片之前,连续自动对焦很好用,因为最初在相机上设置了FOCUS_MODE_CONTINUOUS_PICTURE。但是,在调用camera.autoFocus之后,FOCUS_MODE_CONTINUOUS_PICTURE停止工作。稍后当我返回到相同的屏幕并调用startPreview时,连续自动对焦不再起作用。
有没有办法重新启动连续自动对焦,而无需重新启动相机?我想避免重新启动相机,因为这会导致用户几秒钟的延迟。
1个回答

17

我通过调用camera.cancelAutoFocus()解决了问题。这导致连续自动对焦重新启动。


2
如果应用程序想要恢复连续对焦,则必须调用cancelAutoFocus。重新启动预览不会恢复连续自动对焦。http://developer.android.com/reference/android/hardware/Camera.Parameters.html#FOCUS_MODE_CONTINUOUS_PICTURE - Elyess Abouda

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接