应用终止时处理远程推送通知的声音

时间:2019-08-20 07:19:06

标签: ios apple-push-notifications swift4

我有火灾报警应用程序。在应用程序终止状态期间,收到带有自定义声音“ fire.wav”的远程推送通知,应用程序将播放该声音。一段时间后,会收到带有“默认”声音的警报清除通知。收到第二个通知时,我需要停止自定义声音。

如果第二个通知没有收到,我需要像循环一样重复自定义声音。我保存在捆绑中的音频长度为22秒。 如果有人遇到此问题,请回答?

2 个答案:

答案 0 :(得分:0)

document here中所述:

  

您可以将音频数据打包为aiff,wav或caf文件。声音文件的长度必须少于30秒。如果声音文件的时间长于 30秒,则系统会播放默认声音。

您唯一可以做的就是在27秒间隔内继续发送通知,直到您发送停止声音通知为止。即使这样,也不能保证由于通知延迟而发出的连续声音。另外,我不建议在您的情况下使用PushKit,因为它主要用于VOIP通知。

现在要停止在第二个通知中发出声音,请在您的捆绑软件和第二个通知集的有效负载中包含一个静默通知,作为要播放的声音文件。

...
“aps” : {
   “badge” : 9
   “sound” : “nosound.aiff”
}, 
...  

这样,第二个通知到达后,系统将尝试播放无声的声音,应该(尚未尝试过,因此请检查并更新)是否会覆盖以前的声音。确保您发送 nosound.aiff ,因为没有该系统将播放默认声音。

答案 1 :(得分:0)

这是我的经验。

  1. 建议使用通知扩展。
  2. 当您的应用处于终止状态时,Apple允许通知将您的应用唤醒,以执行少于30秒的操作。

并尝试回答您的问题: 1.您可以播放少于30秒的音频。 2.您可以在收到第二条通知时停止该音频。 3.您可以重复播放音频吗?不确定,也许不是,因为超过30秒,操作系统将关闭它。

这是您想知道的有关如何停止音频的信息: 使用通知扩展。这种扩展是一种过程。您可以播放/停止其中的音频。