以自动对焦模式为例,可以使用以下方式设置对焦模式为自动对焦:
名称 | 值 | 说明 | 适用场景 |
|---|---|---|---|
FOCUS_MODE_MANUAL | 0 | 手动对焦。通过手动修改相机焦距来改变对焦位置,不支持对焦点设置。 | 当相机和拍摄主体距离,已经近到超过了镜头的最近对焦距离,或在弱光环境下,需要使用手动对焦。 |
FOCUS_MODE_CONTINUOUS_AUTO | 1 | 连续自动对焦。不支持对焦点设置。 | 适合用于拍摄移动的主体或者在拍摄过程中需要不断调整焦距的情况。画面会根据预览的内容自动调整,切换焦距或者画面预览都不会模糊。 |
FOCUS_MODE_AUTO | 2 | 自动对焦。支持对焦点设置,可以使用setFocusPoint设置对焦点,根据对焦点执行一次自动对焦。 | 系统默认能力,大多数情况下可以成功对焦,适合绝大部分场景。 |
FOCUS_MODE_LOCKED | 3 | 对焦锁定。不支持对焦点设置。 | 完成自动对焦后,固定对焦距离,不需要相机再自行改变焦点时使用。 |
在相机应用开发过程中,可以随时监听相机聚焦的状态变化,通过注册focusStateChange的回调函数获取监听结果,仅当对焦模式为自动对焦模式,且相机对焦状态发生改变时触发该事件,具体代码可参考对焦-状态监听。
Q:在进行拍照时,相机对焦发生改变,焦距突然变化。
A:相机框架默认自动对焦能力,可以使用以下方式设置对焦模式为手动对焦:在commitConfig之后执行photoSession.setFocusMode(camera.FocusMode.FOCUS_MODE_MANUAL)。
Q:自定义相机进入相机页面时,页面没有聚焦或对焦不明显,拍照会模糊,如何解决?
A:可以将模式设置为this.session.setFocusMode(camera.FocusMode.FOCUS_MODE_AUTO),每次点击后用setFocusPoint对焦点进行设置可以实现。
Q:相机设置连续自动对焦模式后和没设置有什么区别?
A:设置连续自动对焦后画面会根据预览的内容自动调整,在切换焦距或者画面时都不会模糊。