更改推送通知声音

use*_*763 22 push-notification apple-push-notifications ios

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

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

如何把文件放在那里?

Roh*_*nap 37

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

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

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

线性PCM MA4(IMA/ADPCM)μLawaLaw您可以将音频数据打包到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 Player中打开声音并从电影中选择Show Movie Inspector来检查声音以确定其数据格式菜单.

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

完成文件后,最简单的方法是将其放入应用程序包中.

当您发送推送通知时,只需在JSON有效负载中添加文件名.例:

{
    "aps" : {
        "alert" : "You got your emails.",
        "badge" : 9,
        "sound" : "bingbong.aiff"
    }
}
Run Code Online (Sandbox Code Playgroud)

而已!您无需在应用程序代码中执行任何特殊操作.

编辑:
请将文件放在项目包中(即在项目的层次结构内),并Copy items if needed在拖放时选择选项.涂黑的部分有项目名称.

在此处输入代码


Sus*_*rma 18

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

{
    aps =     
    {
        alert = "notification message";
        sound = "example.caf";
    };
}
Run Code Online (Sandbox Code Playgroud)

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

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

文件保存在桌面上.现在将文件拖放到项目中.然后选择目标中的构建阶段.

检查"复制包资源"下是否存在声音文件.如果没有,请单击+按钮添加声音文件.有效负载中的声音名称应与声音文件名相同.

现在,您已准备好播放自定义通知声音.

  • 你是对的! - "检查您的声音文件是否存在于'复制包资源'下.如果没有,请单击+按钮添加声音文件".谢谢 (2认同)