iOS推送通知自定义声音

时间:2015-10-13 12:56:21

标签: ios objective-c apple-push-notifications

我需要自定义推送通知声音。我不想创建和包含到Bundle。我需要实现类似whatsapp通知声音,或者请提供Apple提供的声音列表(如默认声音)。任何帮助都将受到高度赞赏。

由于

5 个答案:

答案 0 :(得分:1)

在将此问题挖掘超过3周后,与苹果来回写作是唯一的解决方案 将有效负载更改为

 sound = "custom"

现在您需要在表格视图中显示所有系统声音(如果您不知道如何操作,请查看github)。 一旦用户标记他的声音通知,您需要将文件复制到库/声音并为其指定自定义名称(或有效负载中的确切名称)。 这样你永远不会改变服务器端代码并​​保持自定义,另一方面你只需用一个新的声音覆盖自定义文件,用户就被选中了。

* SIDE注意:在版本9.2.1上有一个错误导致通知第二次无法工作,或者根本不应该根据Apple在下一个版本9.3中修复它!

在呼吸中我希望解决方案我可以覆盖有效负载,就像我们在Android中可以做的那样,Apple使开发人员的推送通知更加困难。

答案 1 :(得分:0)

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

//以这种方式编写你的有效载荷

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

答案 2 :(得分:0)

准备自定义提醒声音

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

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

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

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

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

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

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

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

答案 3 :(得分:0)

答案 4 :(得分:0)

要使用默认声音进行通知

let content = UNMutableNotificationContent()

/// Set up content ...

content.sound = UNNotificationSound.default()

要使用自定义声音,声音文件必须存储在应用程序的主捆绑包中,或者下载该文件并将其存储在应用程序容器目录的Library/Sounds子目录中。

>

“主捆绑包”方法只能与新的应用程序版本一起使用,“下载声音文件”方法更灵活,可以在不发行新版本的情况下传送新声音。