2015-10-13 191 views
2

我需要自定义推送通知声音。我不想创建并包含到Bundle。我需要像whatsapp通知声音一样实施,或者请给出Apple提供的声音列表(如默认声音)。任何帮助将不胜感激。iOS推送通知自定义声音

谢谢

+2

[列出可用的声音为iOS推送通知(可能的重复http://stackoverflow.com/questions/10709707/list-of-可用声音为ios推送通知) –

+1

这不是正确的答案为我的问题。我正在看caf的一些示例文件。谢谢。 – Thangavel

+0

[如何在用户获取推送通知时播放自定义声音文件的可能的重复?](http://stackoverflow.com/questions/21179630/how-to-play-custom-sound-file-when-user-get-push - 通知) –

回答

0

在你的包中添加一个名为“pushSound.caf”的声音文件。

//写你的有效载荷这样

{ 
aps = 
{ 
    alert = "message"; 
    sound = "pushSound.caf";//this file will have to your bundle 
    }; 
} 
+0

他写道,他不想包括捆绑。这不是关于服务器端,而是关于在获取它时自定义通知,JSON中的'sound'参数应该是'default',并且定制应该在应用程序委托中。我还没有找到如何覆盖收到的默认iOS系统消息。 – XcodeNOOB

0

准备自定义提示音就会响起

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

定制警报声音由IOS系统声设施发挥,因此它们必须在以下的音频数据格式之一:

  • 线性PCM
  • MA4(IMA/ADPCM)
  • μLaw
  • ALAW

您可以在AIFF,WAV或CAF文件包中的音频数据。然后,在Xcode中,将声音文件作为应用程序包的非本地化资源或数据容器的Library/Sounds文件夹添加到项目中。

可以使用afconvert工具转换的声音。例如,16位线性PCM系统声音Submarine.aiff转换为IMA4音频的CAF文件,在终端应用程序中使用以下命令:

afconvert /System/Library/Sounds/Submarine.aiff ~/Desktop/sub.caf -d ima4 -f caff -v 

您可以检查一个声音,以确定其数据格式通过在QuickTime Player中打开它并从“电影”菜单中选择“显示电影检查器”。

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

2

挖这个问题超过3周,写来回苹果后,这是唯一的解决办法 改变有效载荷为类似

sound = "custom" 

现在你需要显示您的所有系统中的声音表格视图(如果你不知道该怎么做,请看github)。 一旦用户标记了他的声音通知,您需要将该文件复制到库/声音并为其提供自定义名称(或者有效载荷中的确切名称)。 那样你永远不会改变服务器端的代码,并保持它的自定义,另一方面,你只需用用户选择的新声音覆盖自定义文件。

*边注:在9.2.1版本有这导致通知无法按照苹果的下一个版本9.3的第二次合作,或根本,它应该是固定的错误!

在呼吸中我希望解决方案能够像Android那样覆盖有效载荷,Apple会在开发人员面前推送更多的推送通知。

+1

是的,你是对的。这是最终我用自定义声音实现的方式。 – Thangavel