如何防止应用程序进入睡眠状态,以便为音乐集成睡眠模式
How to prevent the app from going to sleep, in order to integrate a sleep mode for the music
我有一个可用的音乐应用程序,用 Swift 编写。
我想集成一个睡眠模式,可以在 10 分钟后暂停播放的音乐。
我用 perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval)
来完成这项任务,效果很好。
但是有一个问题。 iPhone很有可能会在 10 分钟结束前进入睡眠状态,因此不会调用暂停功能,音乐会继续播放。
我知道还有其他方法可以在 10 分钟后发送一个动作(NSTimer,使用 GCD)但是如果我明白,none 这个解决方案会阻止机器进入睡眠或唤醒执行任务的应用程序。
也许我可以使用 background mode,但是:
- 我的目标并不是这个模式应该解决的问题。我不想有一些时间来完成,我只想要在特定时间使用第二个处理器的 1/10。
- 此选项不保证在 10 分钟内有效。
这是实现我需要的方法吗?
你可以做:UIApplication.shared.isIdleTimerDisabled = true
,因为这是 Swift 3 中的唯一方法,你可以在 Swift 2 或 [=12= 中做 UIApplication.sharedApplication().idleTimerDisabled = true
] 在 objective-c
我有一个可用的音乐应用程序,用 Swift 编写。
我想集成一个睡眠模式,可以在 10 分钟后暂停播放的音乐。
我用 perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval)
来完成这项任务,效果很好。
但是有一个问题。 iPhone很有可能会在 10 分钟结束前进入睡眠状态,因此不会调用暂停功能,音乐会继续播放。
我知道还有其他方法可以在 10 分钟后发送一个动作(NSTimer,使用 GCD)但是如果我明白,none 这个解决方案会阻止机器进入睡眠或唤醒执行任务的应用程序。
也许我可以使用 background mode,但是:
- 我的目标并不是这个模式应该解决的问题。我不想有一些时间来完成,我只想要在特定时间使用第二个处理器的 1/10。
- 此选项不保证在 10 分钟内有效。
这是实现我需要的方法吗?
你可以做:UIApplication.shared.isIdleTimerDisabled = true
,因为这是 Swift 3 中的唯一方法,你可以在 Swift 2 或 [=12= 中做 UIApplication.sharedApplication().idleTimerDisabled = true
] 在 objective-c