Swift 4 Toggle AVCaptureDevice Flash
Я знаю, что Swift обновлял свою документацию, я много исследовал и до сих пор не могу заставить мою камеру использовать вспышку. Может кто-нибудь увидеть что-то не так с моим кодом:
@objc func handleToggleFlash(){
print("Toggling Flash")
if AVCaptureDevice.authorizationStatus(for: .video) !=
AVAuthorizationStatus.authorized{
return
}
do {
try Device?.lockForConfiguration()
if Device?.hasFlash == true {
let settings = AVCapturePhotoSettings()
let mode = settings.flashMode
if mode == AVCaptureDevice.FlashMode.on {
print("now off")
settings.flashMode = AVCaptureDevice.FlashMode.off
flashCameraButton?.setImage(#imageLiteral(resourceName: "flash_off"), for: .normal)
} else {
print("now on")
settings.flashMode = AVCaptureDevice.FlashMode.on
flashCameraButton?.setImage(#imageLiteral(resourceName: "flash_on"), for: .normal)
}
Device?.unlockForConfiguration()
}
} catch let err {
print(err)
}
}
Код выполняется до конца и даже попадает во внутренние операторы печати, но при успешной съемке вспышка не происходит. Кроме того, требуется ли проверка, когда устройство находится в режиме лицевой панели?