我正在寻找如何打开/关闭iPhone的相机闪光灯,我发现了这个:
@IBAction func didTouchFlashButton(sender: AnyObject) {
let avDevice = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo)
// check if the device has torch
if avDevice.hasTorch {
// lock your device for configuration
avDevice.lockForConfiguration(nil)
// check if your torchMode is on or off. If on turns it off otherwise turns it on
if avDevice.torchActive {
avDevice.torchMode = AVCaptureTorchMode.Off
} else {
// sets the torch intensity to 100%
avDevice.setTorchModeOnWithLevel(1.0, error: nil)
}
// unlock your device
avDevice.unlockForConfiguration()
}
}
我有两个问题,一个在线:
avDevice.lockForConfiguration(nil)
另一个在线:
avDevice.setTorchModeOnWithLevel(1.0, error:nil)
这两个问题都与异常处理有关,但我不知道如何解决它们。
6条答案
按热度按时间sqyvllje1#
vuktfyat2#
Swift 4版本,改编自Ivan Slavov的答案。TorchMode.auto如果你想变得花哨,“www.example.com“也是一个选项。
f3temu5u3#
Swift 5.4和Xcode 12.4以及iOS 14.4.2
ghhkc1vu4#
由于某些原因,“avDevice.torchActive”总是为false,即使在闪光灯打开时也是如此,这使得它不可能关闭,但我通过声明一个布尔值来修复它,该布尔值最初设置为false,每次闪光灯打开时,该布尔值都设置为true。
}
ylamdve65#
将类方法添加到ViewController。
检查闪光灯模式状态。
ecbunoof6#
另一个捷径是这样做