Pixel 6a/7调用cameraControl#setLinearZoom低于0.5f时预览模糊问题
调用cameraControl#setLinearZoom传入值小于0.5时Pixel设备预览模糊的问题
现象总结
- Pixel 6a/7设备上,调用
cameraControl.setLinearZoom()时,若传入参数小于0.5f,相机预览会持续模糊;将参数固定为0.5f时,预览恢复清晰。 - 三星Galaxy A51仅初始阶段模糊,自动对焦系统会快速介入修正,无持续模糊问题。
关联代码
val seekBarChangeListener = object : SeekBar.OnSeekBarChangeListener { override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { val dividend = progress.toFloat() val divisor = seekBar.max.toFloat() val quotient = dividend/divisor // 当quotient < 0.5f时,相机预览模糊 cameraControl?.setLinearZoom(quotient) } }
问题原因
这是Pixel 6a/7设备CameraX框架的专属Bug:当线性缩放值低于0.5时,设备自动对焦(AF)模块未被正确触发,无法完成对焦动作,导致预览画面持续模糊。
临时修复方案
方案1:限制缩放最小值
将缩放参数强制限制在0.5f及以上,避免触发Bug:
val quotient = dividend/divisor val clampedZoom = max(quotient, 0.5f) cameraControl?.setLinearZoom(clampedZoom)
方案2:手动触发对焦
设置缩放后主动调用对焦接口,强制AF系统工作:
cameraControl?.setLinearZoom(quotient) // 基于预览区域触发自动对焦 cameraControl?.startFocusAndMetering( FocusMeteringAction.Builder(previewView.displayRect).build() )
内容的提问来源于stack exchange,提问作者VIN
相关产品推荐
相关产品推荐

