【发布时间】:2019-01-29 23:19:16
【问题描述】:
以下解决方案
我正在开发一个正在运行的应用程序,该应用程序会在每次练习开始时提供画外音指导。它在设备处于活动状态时按预期工作,但在手机锁定时不起作用。 [当前音频继续播放,但没有未来的音频播放。]
问题 如何在用户 iPhone 被锁定时开始播放音频画外音。
目前,我使用Timer.scheduledTimer 跟踪锻炼,用于显示 [当前活动和整体锻炼] 的 2 个计时器。当计时器在一个活动结束时达到预定义的时间时,将播放画外音以介绍下一个活动。 计时器触发是启动音频的原因,我相信这是问题所在。我可以暂停锻炼、跳过部分并且一切正常 - 直到设备被锁定。
如果在我按下主页按钮或锁定 iPhone 时正在播放音频画外音,它会继续按预期播放。问题是计时器没有触发,因此下一个音频画外音 [在 90 秒内] 永远不会播放。
我读过的一些答案和 cmets 说这个功能在 iOS 中是不可能的。 Couch to 5k 应用程序https://itunes.apple.com/gb/app/one-you-couch-to-5k/id1082307672?mt=8 使用此功能,所以我知道这是可能的,我只是不知道他们是如何做到的。 [这将是一个专门的会员下载它来看看我的意思:)]
通过搜索,我读了很多帖子说Timer 或NSTimer 在应用程序处于后台或手机被锁定时无法运行。任何说它可以工作的帖子都是旧的并且基于 iOS4/5
我已阅读有关使用静音和基本上拥有 1 个长音频文件的建议。虽然这会给跳过锻炼中的部分带来一些新的挑战,但我也读过 cmets 说这种行为不会通过 Apple 对 AppStore 应用程序的测试。第三个缺点是我的音频文件大小会增加。
我见过的一个选项是本地通知,但是我还没有看到一个用于在应用处于后台时播放音频画外音的示例。
如何实现与 Couch to 5k 应用程序相同的功能?
谢谢
【问题讨论】:
标签: ios swift audio nstimer voiceover