更改推送通知声音

时间:2016-05-31 03:58:04

标签: ios push-notification apple-push-notifications

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

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

如何将文件放在那里?

2 个答案:

答案 0 :(得分:35)

关注Apple documentation为您的应用准备自定义声音文件。

  

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

     

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

     

线性PCM MA4(IMA / ADPCM)μLawaLaw您可以打包音频数据   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中打开它并选择Show Movie Inspector   来自电影菜单。

     

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

创建文件后,最简单的方法是将其放入app bundle。

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

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

多数民众赞成!您无需在应用程序代码中执行任何特殊操作。

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

enter code here

答案 1 :(得分:15)

您的服务器管理员会在通知有效负载中向您发送声音名称。 Payload看起来像这样

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

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

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

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

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

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