【发布时间】:2014-05-08 04:24:42
【问题描述】:
这让我发疯了,我相信我现在已经尝试了所有可能的方法,但我的手机仍然决定保持静音。我现在只希望它在我呈现本地通知时播放 any 声音。目前,UILocalNotificationDefaultSoundName 和我添加到我的应用程序包中的自定义声音都不起作用。我写了一个简单的倒计时应用,当倒计时结束时使用presentLocalNotification:。
- (void)showLocalNotification
{
UILocalNotification *alarmNotification = [[UILocalNotification alloc] init];
alarmNotification.alertBody = [NSString stringWithFormat:@"fired at: %@", [NSDate date]];
alarmNotification.soundName = UILocalNotificationDefaultSoundName;
// alarmNotification.soundName = @"glass.aiff"; // "glass.aiff" is a file in my application bundle
[[UIApplication sharedApplication] presentLocalNotificationNow:alarmNotification];
}
我还展示了一个UIAlertView,它将在收到通知时从AppDelegate 初始化和显示:
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"alert" message:@"Local notification was received" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
}
收到本地通知并显示警报,在通知中心我也可以看到通知已被触发,只是声音不起作用...
我检查了每个关于堆栈溢出的类似问题,启用了我所有的声音设置,确保在应用程序的电话通知设置中启用,我什至收到来自其他应用程序的推送通知,而我正在测试声音在哪里播放...
我到底错过了什么,我的手机没有播放任何声音?当我触发它或收到它时,我是否必须导入一些框架或在通知上调用其他任何东西?
也许最简单的解决方案是,如果有人发布通知出现时播放默认声音所需的代码的最小版本(尽管我相信我自己已经编写了那个最小版本 - 除了它没有工作)。
顺便说一句,我在真机和模拟器上都试过这个应用程序,但都没有成功...
【问题讨论】:
-
这可能与我在 iOS7 上运行并使用 Xcode 5 有关吗?我发现的几乎所有教程都是 iOS6 和更早版本......这对我来说没有任何意义,但是谁知道...
-
您是否尝试过将您的应用程序保持在后台?如果您的应用程序处于活动状态,我猜声音永远不会播放。
-
嗯,我从安排通知开始,它会在几秒钟内触发,但改用
presentLocalNotification:以获得更多控制权。不过,我现在要试试这个,谢谢你的提示。 -
成功了!!它播放默认声音和自定义声音!!!非常感谢!如果您将此添加为答案,我会将其标记为我的问题的解决方案,并再次给您投票! :)
-
是的,我添加了我的答案..
标签: ios objective-c uilocalnotification audio