【发布时间】:2021-08-26 16:49:05
【问题描述】:
我正在制作一个闹钟应用程序。为了在适当的时间播放警报声,我使用myAudioPlayer.play(atTime: myAudioPlayer.deviceCurrentTime + secondsUntilAlarm)。这样,即使应用在后台,音频播放器也会在适当的时间播放警报声。
注意:我从另一个 SO 答案中得到了这个想法,不幸的是我现在似乎找不到。
但是,我注意到的是,如果 secondUntilAlarm 值相对较快,例如可能 20 分钟或更短(当然转换为秒,因为这是该方法需要的),则警报会正确播放。但是,如果它比这更长,声音就不会播放。这种方法在后台的工作方式有什么我遗漏的吗?应用程序是否会进入某种暂停状态或导致音频播放器无法触发播放的情况?
任何建议或 cmets 将不胜感激 - 谢谢!
【问题讨论】:
-
是的,该应用程序肯定被暂停了。 iOS 上的应用程序不会永远在后台运行。你必须使用本地通知之类的东西。
-
@jnpdx 我已经意识到该功能在应用程序处于挂起状态时仍然有效!只需添加
mixWithOthers,这样我的音频会话就没有被停用????。
标签: ios swift avaudioplayer