我一直在寻找答案,我还没有找到答案.我想创建一些类似于闹钟的应用程序.
其中一个功能将在用户指定的时间唤醒(没什么好奇怪的).如果你看看睡眠周期应用程序,你会注意到它会唤醒你,但它也会跟踪你的睡眠,所以它必须在后台运行.此外,它还可以播放唤醒你的歌曲,直到你将其关闭(不仅仅是30秒,作为通知声音的长度限制).它也可以调高设备的音量.
如果我没有看到这个应用程序在行动,我不相信开发人员可以在iPhone上做这样的功能.
我目前的进展:
我可以在用户指定的时间播放声音,但前提是应用程序位于前台.如果播放声音,然后用户单击主页按钮仍然播放声音(这很酷)但如果应用程序处于后台,则音乐无法启动.这是一些代码:
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, withOptions: AVAudioSessionCategoryOptions.MixWithOthers)
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)
}Run Code Online (Sandbox Code Playgroud)
然后我用
AVAudioPlayerRun Code Online (Sandbox Code Playgroud)发挥一些声音.所以第一个问题是:如何从睡眠周期应用程序的背景播放声音呢?而且我确定睡眠周期不会使用通知声音.我的第二个问题是如何改变设备音量(睡眠周期也可以做到但是在堆栈溢出时有很多人说这是不可能的).
请帮忙 :)