我已完成我的应用程序的基本通知。我想为我的通知添加声音效果。
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];
如何添加音效?
你可能想从阅读开始 准备自定义警报声音 本地和推送通知编程指南(确保您的自定义声音短于30秒)。
如果要使用默认声音:使用 UILocalNotificationDefaultSoundName
(按照Euroboy的建议)
更新: 你似乎并不是唯一遇到这个问题的人。描述了一种可能的(但当然不是很好的)解决方案 这里。
在我的情况下,问题是我忘了注册UIUserNotificationTypeSound。如果没有注册到UIUserNotificationTypeSound,您的应用程序将不会在“通知设置”下提供“声音”选项。
以下是本地和远程通知编程指南中的代码片段(已经在上面添加了一个链接)。
UIUserNotificationType types = UIUserNotificationTypeBadge |
UIUserNotificationTypeSound | UIUserNotificationTypeAlert;
UIUserNotificationSettings *mySettings = [UIUserNotificationSettings settingsForTypes:types categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:mySettings];
添加该代码后,您可以在应用程序的通知设置中启用声音选项。
尝试播放mp3文件作为本地通知声音时,我遇到了类似的问题。
声音短于30秒,它被捆绑在一起,表面上的一切都显得规则。
几个小时后,我意识到问题是由在线mp3切割工具引起的。
我找到了更好的编辑器,并且文件在通知时变得可玩了。
如果使用某个工具编辑mp3文件,编辑工具可能会遗漏某些内容。
可能是你的问题也是由声音编辑器或声音格式转换器引起的。
我发现在本地通知中播放自定义声音非常简单的解决方案。
1.通常声音与aiff格式完美配合。
2.当您添加自定义声音时,请检查此声音是否添加到“构建阶段”
3.您已添加自定义声音但是再次播放基本系统警报? - 从设备中删除应用程序并重新启动。连接设备并再次编译应用程序后。
4.利润!它会工作!
PS:如果你有iOS 10,这是解决方案。我怎么理解这是系统包...
您需要确保资源文件已选择目标成员资格。对于我的情况,它没有被检查,并且通知仍然是系统默认的。