小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
(一)切换摄像头
基本上ios设备都具备有前置&后置两个摄像头。接下来开发的功能是让用户在摄像头之间进行切换。当然,这个知识点除了能在我们所做的这个demo上使用。在我们的开发项目中也是运用的很平常的。
(1)摄像头的支撑方法
(2)切换摄像头
(二)配置捕捉设备
AVCapture Device 定义了很多方法,让开发者控制ios设备上的摄像头。可以独立调整和锁定摄像头的焦距、曝光、白平衡。对焦和曝光可以基于特定的兴趣点进行设置,使其在应用中实现点击对焦、点击曝光的功能。
还可以让你控制设备的LED作为拍照的闪光灯或手电筒的使用
每当修改摄像头设备时,一定要先测试修改动作是否能被设备支持。并不是所有的摄像头都支持所有功能,例如牵制摄像头就不支持对焦操作,因为它和目标距离一般在一臂之长的距离。但大部分后置摄像头是可以支持全尺寸对焦。尝试应用一个不被支持的动作,会导致异常崩溃。所以修改摄像头设备前,需要判断是否支持。比如,将对焦模式设置为自动之前,首先要检查此模式是否被支持。
当验证这一个配置的修改可以支持时,就可以执行实际的设置配置了。修改捕捉设备的基本技巧包括先锁定设备准备配置,执行所需的修改,最后解锁设备。
Mac、iPhone、iPad上的设备都是系统通用的,所以在进行修改前,AVCaptureDevice要求开发者获得设备上的一个排它锁🔒,不这样做会导致应用程序抛出异常。虽然不要求配置完立即释放排它锁🔒,不过如果不释放则会对其他使用同一个资源的应用程序产生副作用,所以大多数时候我们每当配置完成后就释放这个排它锁🔒。
(1) 调整焦距&曝光
iOS设备是大多数后置摄像头都支持基于给定的兴趣点设置对焦&曝光数据。我们在这个demo上直观的利用这个功能允许用户在摄像头界面点击一个位置,就会在这个点自动对焦或曝光。还可以对这些兴趣点锁定焦距&曝光,确保用户可以稳定的点击拍照按钮。