iOS 【自定义相机 重复闪烁 闪退 解决方案】

在使用 WZYCamera 实现自定义相机时,遇到了iPhone水平放置时cover闪烁和拍照闪退的问题。问题根源在于陀螺仪计算角度的误差和jpegSampleBuffer可能为NULL。解决方案包括使用陀螺仪原始数据判断屏幕方向,以及在拍照时处理错误返回,避免因jpegSampleBuffer为NULL引发的崩溃。提供源码和demo供学习。
摘要由CSDN通过智能技术生成

最近自己的 WZYCamera 经过多次测试出现了一些问题。

总结以下两点:

01 在水平放置 iPhone 拍摄的时候不允许竖屏拍摄的 cover 一直闪烁,导致没有一个合适的 iPhone 摆放姿势。

02 拍照闪退


分析错误成因以及解决办法:

01 不停闪烁是由于我们 cover 显示出来的判断依据是 iPhone 的自身角度以及 iPhone 和水平面夹角,而这个夹角是根据 iPhone 自身的陀螺仪并且通过计算得到的角度。所以说这个角度不是 iPhone 自动返回的,而是经过处理的一个值,这样一来,多少会有些误差和计算错误。那么解决办法就是拿到最原始的数据进行一个判断。也就是用陀螺仪直接返回的 x、y、z 直接进行判断。


02 拍照闪退是需要我们在拍照时对错误的返回进行一个判定,错误的返回我们就不要了。或许是由于光线不好,或许是由于对焦没完全成功,可能会返回 error,或者抛出系统方法自定义的异常。我将崩溃异常进行的捕捉和提交,发现错误的成因于此:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值