我有火灾报警应用程序。在应用程序终止状态期间,收到带有自定义声音“ fire.wav”的远程推送通知,应用程序将播放该声音。一段时间后,会收到带有“默认”声音的警报清除通知。收到第二个通知时,我需要停止自定义声音。
如果第二个通知没有收到,我需要像循环一样重复自定义声音。我保存在捆绑中的音频长度为22秒。 如果有人遇到此问题,请回答?
答案 0 :(得分:0)
如document here中所述:
您可以将音频数据打包为aiff,wav或caf文件。声音文件的长度必须少于30秒。如果声音文件的时间长于 30秒,则系统会播放默认声音。
您唯一可以做的就是在27秒间隔内继续发送通知,直到您发送停止声音通知为止。即使这样,也不能保证由于通知延迟而发出的连续声音。另外,我不建议在您的情况下使用PushKit,因为它主要用于VOIP通知。
现在要停止在第二个通知中发出声音,请在您的捆绑软件和第二个通知集的有效负载中包含一个静默通知,作为要播放的声音文件。
...
“aps” : {
“badge” : 9
“sound” : “nosound.aiff”
},
...
这样,第二个通知到达后,系统将尝试播放无声的声音,应该(尚未尝试过,因此请检查并更新)是否会覆盖以前的声音。确保您发送 nosound.aiff ,因为没有该系统将播放默认声音。
答案 1 :(得分:0)
这是我的经验。
并尝试回答您的问题: 1.您可以播放少于30秒的音频。 2.您可以在收到第二条通知时停止该音频。 3.您可以重复播放音频吗?不确定,也许不是,因为超过30秒,操作系统将关闭它。
这是您想知道的有关如何停止音频的信息: 使用通知扩展。这种扩展是一种过程。您可以播放/停止其中的音频。