我已经为我的应用添加了自定义声音,但是当推送到达时它不会播放。 我不知道为什么不这样做,我看不出与我所做的有什么不同,所涉及的步骤也很少。
1)声音文件是一个有效的音频文件(我甚至可以在Xcode中点击并播放)。
2)声音文件出现在应用程序包中:
3)声音文件名使用推送有效负载中的确切名称和大小写指定:
{"aps":{"alert":"Test","badge":0,"sound":"PyngNotification.caf"}}
4)我尝试指定没有扩展名的名称,就像“PyngNotification”一样。
5)推送到达并显示,但不播放自定义声音。
6)无论推送内容是否包含“PyngNotification.caf”,“default”或“”声音,手机都会产生相同的噪音。它是一种短暂的嗡嗡声。
7)手机上没有禁用声音,也没有推送应用程序。
8)该应用正在注册UIRemoteNotificationTypeSound(如果是iOS8)。 (如果通过控制面板查看,应用程序会将声音显示为允许的类型之一。)
9)我有多部手机,一部分是iOS8,另一部分是iOS7。这些声音都没有播放。
10)声音不到30秒。
11)声音是ma4并使用afconvert转换为caf。
我看不到任何我遗漏的步骤,也看不出任何不正确的步骤。 有人有什么想法吗?
答案 0 :(得分:0)
点击不在Xcode中工作的声音文件。查看右侧的文件检查器,确保" Target Membership"选项已被选中。
答案 1 :(得分:0)
您提供的步骤几乎是我所做的一切,除了后台模式设置。我必须从“功能”>“背景模式”中检查“音频,Airplay和画中画”模式。希望对您有所帮助。
答案 2 :(得分:-5)
度Acc。到Apple的文档
https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/IPhoneOSClientImp.html#//apple_ref/doc/uid/TP40008194-CH103-SW6
准备自定义提醒声音
对于iOS中的远程通知,您可以指定iOS在为应用呈现本地或远程通知时播放的自定义声音。声音文件必须位于客户端应用程序的主包中。
自定义提醒声音由iOS系统声音设备播放,因此它们必须采用以下音频数据格式之一:
Linear 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秒。如果自定义声音超过该限制,则会改为播放默认系统声音。