2

我制作了这个应用程序打瞌睡,通过调整手机上的手电筒来帮助你冥想。它在一定时间段内从低级亮度变为高级亮度。

它适用于 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:) 方法也不会引发错误。

4

0 回答 0