我发送应用程序收到的解析推送通知,但请求的声音不播放,而是播放默认声音。声音已由应用程序保存在文档文件夹中。我可以在iTunes中查看他们在那里。在某些时候这是有效的,但由于某种原因,它已经停止播放请求的声音。如果我记录推送通知用户信息字典,那么声音名称是正确的:
2015-01-11 12:17:41.356 My App[239:60b] didReceiveRemoteNotification, userInfo: {
aps = {
alert = "XXX says FOO from the console!";
sound = "w8nmridutW_v1.mp3";
};
}
有什么想法吗?
答案 0 :(得分:1)
您可能不支持使用的音频格式。当它工作时,它是一个不同的文件? 请查看the apple documentation。
答案 1 :(得分:0)
根据文档here,mp3不是受支持的文件类型。你确定你之前收到过这个mp3文件吗?如果是这样,您遇到了未记录/不受支持的行为。
以下是相关的一点:
准备自定义提醒声音
对于iOS中的远程通知,您可以指定iOS在为应用呈现本地或远程通知时播放的自定义声音。声音文件必须位于客户端应用程序的主包中。
自定义提醒声音由iOS系统声音设备播放,因此它们必须采用以下音频数据格式之一:
线性PCM
MA4(IMA / ADPCM)
μLaw
ALAW
您可以将音频数据打包到aiff,wav或caf文件中。然后,在Xcode中,将声音文件作为应用程序包的非本地化资源添加到项目中。
您可以使用afconvert工具转换声音。例如,要将16位线性PCM系统声音Submarine.aiff转换为CAF文件中的IMA4音频,请在终端应用程序中使用以下命令:
afconvert /System/Library/Sounds/Submarine.aiff 〜/ Desktop / sub.caf -d ima4 -f caff -v
您可以通过在QuickTime播放器中打开声音并从“电影”菜单中选择“显示电影检查器”来检查声音以确定其数据格式。
播放时,自定义声音必须低于30秒。如果自定义声音超过该限制,则会改为播放默认系统声音。