如何为UILocalNotification添加声音?

时间:2014-01-03 07:04:48

标签: ios uilocalnotification

我已经为我的应用程序完成了基本通知。我想为我的通知添加声音效果。

UILocalNotification *localNotification = [[UILocalNotification alloc] init];
if (localNotification == nil)
    return;

localNotification.fireDate = [NSDate date];
//localNotification.timeZone = [NSTimeZone defaultTimeZone];
localNotification.alertBody = msg;
localNotification.soundName = @"Morse.aiff";

[[UIApplication sharedApplication] presentLocalNotificationNow:localNotification];

如何添加音效?

5 个答案:

答案 0 :(得分:12)

您可能需要先阅读本地和推送通知编程指南的Preparing Custom Alert Sounds(确保您的自定义声音短于30秒)。

如果您想使用默认声音:使用UILocalNotificationDefaultSoundName(按照Euroboy的建议)

更新:您似乎并不是唯一遇到此问题的人。描述了一种可能的(但当然不是很好的)解决方案here

答案 1 :(得分:2)

在我的情况下,问题是我忘记注册UIUserNotificationTypeSound。如果没有注册到UIUserNotificationTypeSound,您的应用程序将不会在通知设置下提供“声音”选项。

以下是本地和远程通知编程指南中的代码段(已经在上面添加了链接)。

UIUserNotificationType types = UIUserNotificationTypeBadge |
UIUserNotificationTypeSound | UIUserNotificationTypeAlert;

UIUserNotificationSettings *mySettings = [UIUserNotificationSettings settingsForTypes:types categories:nil];

[[UIApplication sharedApplication] registerUserNotificationSettings:mySettings];

添加该代码后,您可以在应用的通知设置中启用声音选项。

答案 2 :(得分:1)

在尝试播放mp3文件作为本地通知声音时,我遇到了类似的问题。 声音短于30秒,它被捆绑在一起,表面上的一切都显得规则。 几个小时后,我意识到问题是由在线mp3切割工具引起的。 我找到了更好的编辑器,并且文件在通知时变得可玩。

如果使用某个工具编辑mp3文件,编辑工具可能会遗漏某些内容。

可能是您的问题也是由声音编辑器或声音格式转换器引起的。

答案 3 :(得分:0)

我找到了在本地通知中播放自定义声音的非常简单的解决方案。 1.通常声音与aiff格式完美配合。 2.当您添加自定义声音时,请检查此声音是否已添加到"构建阶段" 3.您已添加自定义声音但是再次播放基本系统警报? - 从设备中删除应用程序并重新启动。连接设备并再次编译应用程序后。 4.利润!它会起作用!

PS:如果你有iOS 10,这是解决方案。我如何理解这是系统包..

答案 4 :(得分:0)

您需要确保资源文件已选择目标成员资格。对于我的情况,它没有被检查,并且通知仍然是系统默认的。