【发布时间】:2017-01-12 22:37:16
【问题描述】:
许多闹钟应用在几个小时后设法在锁定屏幕的情况下播放声音(例如:Rise、Wave 闹钟)
您只需在应用打开时设置闹钟并锁定屏幕,屏幕锁定数小时后闹钟就会响起。
我设法弄清楚如何在我的设备被锁定时使用 AVPlayer 播放音频:
将背景功能设置为音频
将“应用程序不在后台运行”设置为是
-
代码:
do { try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback) print("AVAudioSession Category Playback OK") do { try AVAudioSession.sharedInstance().setActive(true) print("AVAudioSession is Active") } catch let error as NSError { print(error.localizedDescription) } } catch let error as NSError { print(error.localizedDescription) }
当我尝试设置 NSTimer 或使用 dispatch_after 运行播放我的音频文件并锁定我的 iPhone 的代码时,Timer 会很快停止,因为显然应用程序在几秒钟后就处于非活动状态 (但只有当我从主屏幕启动应用程序时,当我从 xcode 运行应用程序时才不会,顺便说一句)
那些闹钟应用程序如何设法延迟音频?
【问题讨论】:
-
本地通知,可能
-
不。本地通知限制为最长 30 秒的声音,并且它们在静音时不会响铃,但这些应用会响
-
他们可以将闹钟放到您的日历中(闹钟类型的事件)。
标签: ios swift avaudiosession