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