如何在应用程序处于后台模式时在 iOS 10 中播放自定义音频

Posted

技术标签:

【中文标题】如何在应用程序处于后台模式时在 iOS 10 中播放自定义音频【英文标题】:How to play a customed audio in iOS 10 while the app is in the background mode 【发布时间】:2017-09-28 07:46:42 【问题描述】:

我正在开发一个ios应用程序,它需要在收到远程通知时播放自定义声音以通知用户他收到了一些钱,我看到一些应用程序这样做了,但我不知道如何实现这个函数。

我知道的应用程序是在 iOS 10 及更高版本中。它是 iOS 10 中的新功能吗?我应该研究哪个系统框架?是因为Notification Extension吗?我搜索了一段时间才发现Notification Extension 可以自定义我不需要的 UI。现在我真的很麻烦,不知道该怎么办。任何帮助将不胜感激!

我从远程通知中得到的只是一个文本,它每次都会改变,我必须将它转换为声音然后播放它,所以我的项目中没有任何声音文件。

【问题讨论】:

您需要做的就是将声音文件包含在您的包中,并在您的推送通知的sound 键中引用它 通知每次都会给我发一个不同的文本数字,我要格式化并转换成声音,所以没有声音文件只有一些转换代码。 那你需要实现一个通知扩展,修改你收到的通知的sound属性。 谢谢,那我去研究一下通知扩展。 【参考方案1】:

您可以查看Apple documentation。

要播放自定义声音,您应该在通知负载中定义自定义声音名称。


    aps =     
    
        alert = "Notification message";
        sound = "customSound.caf";
    ;

您还应该将此自定义声音保存在项目中。

更多信息看here

【讨论】:

是否需要音频配置文件?我需要将文本转换为 application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler 方法中的声音,如果应用程序被杀死,该方法将不起作用。 必须有音频配置文件。同样基于Apple documentation application didReceiveRemoteNotification: 将涉及当两个条件都满足时: 1)远程通知被配置为显示警报。 2) 远程通知的 aps 字典包含 mutable-content 键,其值设置为 1。

以上是关于如何在应用程序处于后台模式时在 iOS 10 中播放自定义音频的主要内容,如果未能解决你的问题,请参考以下文章

应用程序处于后台模式时如何在 iOS5 上获取用户位置?

Flutter - 如何在应用程序处于后台时在特定时间执行功能?

应用程序处于后台时状态栏下方的 IOS 文本

iOS:Objective -C如何在应用程序处于后台模式时更改推送通知声音有效负载?

iOS 10:如何在应用程序处于后台时显示传入的 VOIP 呼叫通知?

如何在应用程序处于后台(ios)时使 FCM 通知正常工作?