我收到了来自App Review的崩溃日志,其中我的相机视图中的行将闪光模式设置为"关闭"导致崩溃。以下是代码段:
//find the max
double max = numbers.Max();
//nomarlize the numbers
for (int i = 0; i < numbers.Length; i++)
{
numbers[i] = numbers[i] / max;
}
加载相机视图时设置闪光模式的正确方法是什么?
答案 0 :(得分:0)
您锁定/解锁cameraInput.device,但在backCameraDevice上设置了闪光灯。 你应该这样做:
cameraInput.device.flashMode = .Off
答案 1 :(得分:0)
我们只需要设置一种支持的闪光模式。 如果设备不支持Flash功能,则以编程方式更改Flash模式时,应用程序将崩溃。
因此,如果必须先检查支持的闪光灯模式。
当您要使用AVCapturePhotoSettings时,这是一个代码段。
let settings = AVCapturePhotoSettings()
if let flashModes = self.photoOutput?.supportedFlashModes {
if flashModes.contains(self.flashMode) {
settings.flashMode = self.flashMode
}
}
答案 2 :(得分:-1)
你可以使用双向
1)
let avDevice = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo)
// check if the device has torch
if avDevice.hasTorch {
// lock your device for configuration
do {
let abv = try avDevice.lockForConfiguration()
} catch {
print("aaaa")
}
// 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%
do {
let abv = try avDevice.setTorchModeOnWithLevel(1.0)
} catch {
print("bbb")
}
// avDevice.setTorchModeOnWithLevel(1.0, error: nil)
}
// unlock your device
avDevice.unlockForConfiguration()
}
2)
let device = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo)
if (device.hasTorch) {
do {
try device.lockForConfiguration()
if (device.torchMode == AVCaptureTorchMode.On) {
device.torchMode = AVCaptureTorchMode.Off
} else {
try device.setTorchModeOnWithLevel(1.0)
}
device.unlockForConfiguration()
} catch {
print(error)
}
}