最开始遇到这个错误,首先检查参数 setPreviewSize,需要设置设备支持的预览尺寸
val params = camera.parameters
for(size in params.supportedPictureSizes){
if(size.width == previewSize.width){
params.setPreviewSize(size.width, size.height)
break
}
}
// 设置预览帧率,这只是一个预想值,具体要看驱动是否能达到
params.previewFrameRate = 20
// 设置预览帧率范围,最大值和最小值必须乘以1000,此值用来控制PreviewCallback速率
params.setPreviewFpsRange(20000, 20000)
然后测试小米5x,华为P20,以及商米的一些设备没有问题,然后在用我自己的三星手机跑的时候,又出现了setParameters failed错误,通过排查,确定是这两个设置出现的问题
// 设置预览帧率,这只是一个预想值,具体要看驱动是否能达到
params.previewFrameRate = 20
// 设置预览帧率范围,最大值和最小值必须乘以1000,此值用来控制PreviewCallback速率
params.setPreviewFpsRange(20000, 20000)
然后解决办法是调换顺序或者去掉params.previewFrameRate = 20。
// 设置预览帧率范围,最大值和最小值必须乘以1000,此值用来控制PreviewCallback速率
params.setPreviewFpsRange(20000, 20000)
// 设置预览帧率,这只是一个预想值,具体要看驱动是否能达到
params.previewFrameRate = 20
记录一下。