显示UIAlertView时播放本地通知默认声音?

nic*_*ick 40 iphone cocoa-touch push-notification ios4

我正在为iPhone编写一个提醒应用程序,它使用本地通知显示提醒.

如果在应用程序运行时提醒已关闭,则不会显示本地通知.相反,didReceiveLocalNotification在我的应用程序委托中调用该方法,并通过显示UIAlertView带有提醒文本的方式模仿本地通知对话框.

当应用程序外部显示本地通知时,设备会振动并播放指定的声音UILocalNotificationDefaultSoundName.再次,我想在显示时在应用程序中模仿这个UIAlertView.

我可以通过调用振动设备AudioServicesPlaySystemSound(kSystemSoundID_Vibrate),但我无法弄清楚如何播放本地通知默认声音.没有等效的SystemSoundID常量,我不确定路径是什么.

tl; dr我想在显示UIAlertView时播放本地通知默认声音.有任何想法吗?

And*_*tle 67

好问题.理想情况下,有一种方法可以使用AudioServices选择系统声音.但是,Apple的"系统声音服务参考"中的以下声明暗示:

在Mac OS X中,当用户配置"系统偏好设置"以闪烁屏幕以显示警报,或者如果无法呈现声音时,调用此功能将导致屏幕闪烁.在Mac OS X中,传递常量kSystemSoundID_UserPreferredAlert以播放用户在"系统偏好设置"中选择的警报声音.在iOS中,没有首选的用户警报声音.

由于SDK似乎很少提供,您可能希望使用自己的wav文件来模仿系统声音.以下链接有一个很好的图书馆,也许它会有你想要的声音:http://sites.google.com/site/iphonesounds/iPhoneOriginalSystemSounds_WAV.zip

祝好运!

  • +1投票给声音zip文件的链接 (3认同)

小智 23

您可以通过以下方式播放默认通知声音:

AudioServicesPlaySystemSound(1315);
Run Code Online (Sandbox Code Playgroud)

此链接中,您将找到可用作AudioServicesPlaySystemSound(id)参数的ID列表.

好编码!

  • 导入AudioToolbox以使用它 (6认同)