推送到达时未播放自定义声音

Gru*_*kes 5 apple-push-notifications ios

我已经为我的应用添加了自定义声音,但是当推送到达时它不会被播放.我不知道为什么不,我看不出与我所做的有什么不同,而且涉及的步骤很少.

1)声音文件是可听的有效音频文件(我甚至可以在Xcode中单击并播放它).

2)声音文件出现在应用程序包中:

在此输入图像描述

3)声音文件名在push有效载荷中使用确切的名称和大小写指定:

{"aps":{"alert":"Test","badge":0,"sound":"PyngNotification.caf"}}
Run Code Online (Sandbox Code Playgroud)

4)我已尝试在没有扩展名的情况下指定名称,就像"PyngNotification"一样.

5)推送到达并显示,但不播放自定义声音.

6)无论推送内容是否包含"PyngNotification.caf","default"或""声音,手机都会产生相同的噪音.它是一种短暂的嗡嗡声.

7)手机上没有禁用声音,也没有推送应用程序.

8)该应用程序正在注册UIRemoteNotificationTypeSound(如果是iOS8).(如果通过控制面板查看,应用程序会将声音显示为允许的类型之一).

9)我有多个手机,一个是iOS8,另一个是iOS7.这些声音都没有播放.

10)声音不到30秒.

11)声音是ma4并使用afconvert转换为caf.

我看不到任何我遗漏的步骤,也没有看到任何不正确的步骤.有人有什么想法吗?

aro*_*rav -3

附件。Apple 文档\nhttps://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/IPhoneOSClientImp.html#//apple_ref/doc/uid/TP40008194-CH103-SW6

\n\n

准备自定义警报声音

\n\n

对于 iOS 中的远程通知,您可以指定 iOS 在为应用程序呈现本地或远程通知时播放的自定义声音。声音文件必须位于客户端应用程序的主包中。

\n\n

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

\n\n
Linear PCM\nMA4 (IMA/ADPCM)\n\xc2\xb5Law\naLaw\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n

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

\n\n
\n

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

\n
\n\n

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

\n\n

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

\n