结合声音和 UILocalNotification
Posted
技术标签:
【中文标题】结合声音和 UILocalNotification【英文标题】:Combined sound and UILocalNotification 【发布时间】:2014-01-07 12:25:26 【问题描述】:我有一个类似导航的应用程序,它会根据某些基于位置和时间的操作播放通知。
问题是通知声音必须由2个或更多文件组合而成。
通常不会有问题,因为我会合并音频并按照here 的建议播放。
当应用程序移到后台时,问题就开始了。在这种情况下,我打算使用 UILocalNotification 。不幸的是, UILocalNotification 只允许我将 soundName 属性设置为文件名。由于声音是由几个文件组合而成的,我不能提供这样的音频文件名,对吧?
这里的正确方法是什么?我可以在应用处于后台时使用组合音频吗?
【问题讨论】:
【参考方案1】:UILocalNotification
不行,因为soundName
必须在主包中。此外,声音的播放时间可能不会超过 30 秒。
您也许可以将您的应用注册为后台音频播放器,但您必须正在播放一个文件,或者至少让音频服务知道您将在您的应用被推送到后台之前播放声音以保持它还活着。
看看AVFoundation和Playing media while in the background using AV Foundation on ios
【讨论】:
导航应用如何做到这一点?他们在使用 Siri 还是什么? 不,他们打开一个后台运行使用位置和声音的寄存器,然后启动背景音频的声音服务。 我可以这样做,但我可以安排在所需时间开始音频吗,就像我会使用 localNotification 一样?也许有一些代码,本地通知执行?不幸的是 didReceiveLocalNotification 仅在应用程序从通知中打开后执行。UILocalNotification
仅由您的应用在前台直接处理。其他它们仅由 iOS 处理。因此,除非您的应用程序在后台主动运行,否则您无法真正安排任何事情。只需使用 AVFoundation 并将您的音频会话设置为 AVAudioSessionCategoryAmbient
哇,这不完全正确,NSTimer 在后台模式启用时继续工作!以上是关于结合声音和 UILocalNotification的主要内容,如果未能解决你的问题,请参考以下文章
如何检测 UILocalnotification 声音是不是正在播放