Button(action: {
DispatchQueue.global(qos: .userInteractive).async {
self.lightOn.toggle()
let cam = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .back)
try? cam?.lockForConfiguration()
if (cam?.torchMode == AVCaptureDevice.TorchMode.on) {
cam?.torchMode = AVCaptureDevice.TorchMode.off
}
else if value == 0.0 {
do {
try cam?.setTorchModeOn(level: 0.05)
}
catch {
print(error)
}
}
else {
do {
try cam?.setTorchModeOn(level: value)
}
catch {
print(error)
}
}
cam?.unlockForConfiguration()
}
})
I've tried gos:.userInteractive
, userInitiated
, utilities
and background
but it doesn't seems to work. Anyone can let me know what went wrong?