更改推送通知声音

如何使用自定义声音进行推送通知?

根据我的研究和阅读,我发现有效载荷应该具有应用程序包中或应用程序数据容器的Library / Sounds文件夹中的文件名。

如何把文件放在那里?

按照Apple文档为您的应用程序准备自定义声音文件。

对于iOS中的远程通知,您可以指定iOS在播放应用程序的本地或远程通知时播放的自定义声音。 声音文件可以位于客户端应用程序的主包中,也可以位于应用程序数据容器的Library / Sounds文件夹中。

自定义提醒声音由iOS系统声音设备播放,因此必须采用以下audio数据格式之一:

线性PCM MA4(IMA / ADPCM)μLawaLaw您可以将audio数据打包成aiff,wav或caf文件。 然后,在Xcode中,将声音文件作为应用程序包的非本地化资源或数据容器的Library / Sounds文件夹添加到项目中。

您可以使用afconvert工具来转换声音。 例如,要将16位线性PCM系统声音Submarine.aiff转换为CAF文件中的IMA4audio,请在Terminal应用程序中使用以下命令:

afconvert /System/Library/Sounds/Submarine.aiff〜/ Desktop / sub.caf -d ima4 -f caff -v您可以通过在QuickTime Player中打开并从Movie中selectShow Movie Inspector来检查声音以确定其数据格式菜单。

自定义声音播放时必须在30秒以内。 如果自定义声音超过该限制,则会播放默认的系统声音。

一旦你创build了这个文件,最简单的方法就是把它放在应用程序包中。

当您发送推送通知时,只需在JSON有效内容中添加文件的名称即可。 例:

{ "aps" : { "alert" : "You got your emails.", "badge" : 9, "sound" : "bingbong.aiff" } } 

而已! 你不必在应用代码中做任何特殊的事情。

编辑:
请把文件放入你的项目包(即在项目层次结构内),并在拖放时selectCopy items if needed 。 黑色部分有项目名称。

在此处输入代码

您的服务器pipe理员将向您发送通知有效负载中的声音名称。 有效载荷将如下所示

 { aps = { alert = "notification message"; sound = "example.caf"; }; } 

您需要将声音文件添加到应用程序包。 格式应该是.caf。 要将声音文件转换为.caf,请尝试在terminal中运行此命令。

afconvert -f caff -d aacl@22050 -c 1 sound.aiff soundFileName.caf

文件保存在桌面上。 现在将您的文件拖放到您的项目。 然后在目标中select构build阶段。

检查您的声音文件是否存在“复制束资源”下。 如果没有,点击+button添加你的声音文件。 有效负载中的声音名称应与您的声音文件名相同。

现在你们都可以播放自定义通知声音了。