我制作了这个应用程序打瞌睡,通过调整手机上的手电筒来帮助你冥想。它在一定时间段内从低级亮度变为高级亮度。
它适用于 iPhone 6gen、7gen、8gen 和 X。我刚拿到 XS max,无论出于何种原因,它没有调整亮度,而是保持在最大亮度下打开。
它仍然可以在带有 iOS 12 的 iPhone 7 上运行。奇怪的是,有时它在 XS Max 上随机运行,我只是不知道是什么原因导致它可以正确调整,以及是什么原因导致它有时卡在最大亮度上。
func updateTorch() {
guard let device = AVCaptureDevice.default(for: AVMediaType.video)
else {
return
}
if device.hasTorch && device.isTorchAvailable {
do {
try device.lockForConfiguration()
if torchMode == 0 {
device.torchMode = .off
} else {
try device.setTorchModeOn(level: torchMode) // HERE
}
device.unlockForConfiguration()
} catch {
print("Torch is not working.")
}
} else {
print("Torch not compatible with device.")
}
}
这是我更新火炬的主要方法。如果我在标记为“//HERE”的地方打印“torchMode”,它会给出一个介于 0 和 1 之间的调整浮点值。setTorchModeOn(level:) 方法也不会引发错误。