我有一个iPhone应用程序正在开发中,它使用推送通知。
在有效载荷中,我指定了一些事情:
-
消息体
-
声音
-
操作loc键,因为我不希望用户能够从通知中启动应用程序
我的iPhone收到通知了。它显示一条没有按钮的消息。所以身体和动作锁定键工作得很好。但是,它没有播放任何声音。
但是,在故障排除过程中,我注意到以下几点:
-
如果我实现应用程序:didreceiveremotification,一切看起来都很好。dictionary参数包含一个声音键,其值实际上是我要播放的文件的名称。
-
声音文件本身“有效”,因为如果我在应用程序内部播放它(使用BubbleLevel示例中的SoundEffect类),它就可以正常工作。
尽管有这两个事实,但音效根本不起作用。
在“设置”应用程序中,一切看起来都正常-我的应用程序的“推”功能已打开,我的“声音”和“警报”也都已设置为“打开”。
iPhone文档中心建议使用QuickTime查看文件的格式。这就是它的样子。
最后,如果我在xcode中查看这个文件的信息,它会说文件类型只是默认的“文件”。从我可以看出,列表中没有音频CAF选项。我试过音频wav(声音工程师告诉我原始文件是wav),但没有改变任何东西。
此外,代码:
- (void)applicationDidFinishLaunching:(UIApplication *)application {
// view controller set up stuff
// ...
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)];
}