【发布时间】:2016-01-24 16:43:41
【问题描述】:
我一直在寻找答案很长时间,但我没有找到它。我想创建一些类似于闹钟的应用程序。
其中一个功能将在用户指定的时间唤醒(不足为奇)。如果您查看睡眠周期应用程序,您会注意到它会唤醒您,但它也会跟踪您的睡眠,因此它必须在后台运行。此外,它还可以播放将您唤醒的歌曲,直到您将其关闭(不仅是 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) }然后我用
播放一些声音。 所以第一个问题是:如何像睡眠周期应用程序那样从背景播放声音?而且我确信睡眠周期不会使用通知声音。AVAudioPlayer
我的第二个问题是如何改变设备音量(睡眠周期也可以,但堆栈溢出有很多人说不可能)。
请帮忙:)
【问题讨论】:
-
见下方评论; Apple 确实明确表示您不能播放“静音”音轨:在后台播放音频内容的应用必须播放有声内容,而不是静音。
标签: ios iphone swift audio alarm