AVCaptureDevice的hasFlash和hasTorch属性有什么区别?

时间:2015-10-24 22:10:06

标签: ios avcapturedevice

AVCaptureDevice同时具有hasFlashhasTorch属性(以及类似的其他方法/属性)。闪光灯和火炬有什么区别?

此外,是否存在只有上述其中一种的iOS设备?

2 个答案:

答案 0 :(得分:4)

火炬是留在上面的灯。如果您使用的是美式英语,请考虑手电筒。

闪光灯是拍摄照片时使用的短暂亮光。

所有较新的手机都有。我相信最后的iPod touch都有。它很可能只有具有闪光灯和无火炬的旧设备。

答案 1 :(得分:1)

在iPhone设备上,两个摄像头都有闪光灯:后置摄像头有一个LED摄像头闪光灯,可以在手电筒模式下操作,前置摄像头使用显示器作为闪光灯(短时间显示白色屏幕发出足够的光线)但显示器不能被用作火炬。

检查[device hasFlash],从AVCaptureDevice列表中以编程方式设置LED闪烁:

NSArray * devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];

是不够的,因为两个摄像头都会通过条件[device hasFlash],但为前置摄像头设置[device setTorchMode:AVCaptureTorchModeOn]可能会导致应用程序崩溃。最好的方法是检查两者:

if ([device hasFlash] && [device hasTorch]) {
 [device lockForConfiguration:nil];
 [device setTorchMode:AVCaptureTorchModeOn]; // for example
 [device unlockForConfiguration];
}