我希望屏幕在播放音频时总是亮,并在完成音频时变暗,两分钟后我没有点击屏幕(我在设置中设置了自动锁定),实现如下代码。
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?
由于
答案 0 :(得分:1)
似乎没有机会重置空闲计时器,因此您的设备会在isIdleTimerDisabled
- 属性设置后立即关闭。
然而,您仍然可以尝试实施自己的计时器,以便在合适的时间关闭它。
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
DispatchQueue.main.asyncAfter(deadline: .now() + interval, execute: {
UIApplication.shared.isIdleTimerDisabled = false
})
}
不幸的是,仍无法检查当前idleTimer
时间来动态计算interval
值。