AVCaptureDevice 的 hasFlash 和 hasTorch 属性有什么区别?
What is the difference between AVCaptureDevice’s hasFlash and hasTorch properties?
AVCaptureDevice
具有 hasFlash
和 hasTorch
属性(以及类似的其他 methods/properties)。闪光灯和手电筒有什么区别?
此外,是否存在任何 iOS 设备仅具有上述其中一项?
手电筒是常亮的灯。如果您使用的是美式英语,请考虑手电筒。
闪光灯是拍照时使用的短暂强光。
所有较新的手机都有。我相信最后的 iPod touch 两者都有。很可能只有带有闪光灯但没有手电筒的旧设备。
在 iPhone 设备上两个摄像头都有闪光灯:后置摄像头有一个 LED 摄像头闪光灯,可以在手电筒模式下操作,前置摄像头使用显示屏作为闪光灯(短时间显示白色屏幕发出足够的光线)但显示器不能用作手电筒。
正在检查 [device hasFlash] 以从 AVCaptureDevice 列表中以编程方式设置 LED 闪光灯 ON/OFF:
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];
}
AVCaptureDevice
具有 hasFlash
和 hasTorch
属性(以及类似的其他 methods/properties)。闪光灯和手电筒有什么区别?
此外,是否存在任何 iOS 设备仅具有上述其中一项?
手电筒是常亮的灯。如果您使用的是美式英语,请考虑手电筒。
闪光灯是拍照时使用的短暂强光。
所有较新的手机都有。我相信最后的 iPod touch 两者都有。很可能只有带有闪光灯但没有手电筒的旧设备。
在 iPhone 设备上两个摄像头都有闪光灯:后置摄像头有一个 LED 摄像头闪光灯,可以在手电筒模式下操作,前置摄像头使用显示屏作为闪光灯(短时间显示白色屏幕发出足够的光线)但显示器不能用作手电筒。
正在检查 [device hasFlash] 以从 AVCaptureDevice 列表中以编程方式设置 LED 闪光灯 ON/OFF:
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];
}