我希望屏幕在播放音频时始终亮着,在完成音频时变暗,两分钟后我不点击屏幕(我已将自动锁定设置为设置),请执行以下代码。

override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        UIApplication.shared.isIdleTimerDisabled = true
    }

    override func viewDidDisappear(_ animated: Bool) {
        super.viewDidDisappear(animated)
        UIApplication.shared.isIdleTimerDisabled = false
    }

但是结果是当结束一声音频超过两分钟时,屏幕立即变暗。

如何修复它,或者这是iOS bug?

谢谢

最佳答案

似乎没有任何机会重置空闲计时器,因此设备在设置了isIdleTimerDisabled -property之后立即关闭。

但是,您仍然可以尝试实现自己的计时器,以在正确的时间将其关闭。

override func viewDidDisappear(_ animated: Bool) {
    super.viewDidDisappear(animated)
    DispatchQueue.main.asyncAfter(deadline: .now() + interval, execute: {
        UIApplication.shared.isIdleTimerDisabled = false
    })
}

不幸的是,仍然没有任何方法可以检查当前的idleTimer时间来动态计算interval值。

10-07 19:13
查看更多