如何为 UILocalNotification 添加声音?

Posted

技术标签:

【中文标题】如何为 UILocalNotification 添加声音?【英文标题】:How to add sound for UILocalNotification? 【发布时间】:2014-01-03 07:04:48 【问题描述】:

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

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];

如何添加音效?

【问题讨论】:

"localNotification.soundName = @"Morse.aiff";"是声音的属性,只是您的捆绑资源中应该有一个同名的声音文件。 我可以在库/声音中使用默认的声音提及吗?如果可以,如何使用?因为我没有任何特定的警报视图声音...我可以下载一些地方... 还可以查看通知中心设置,选择您的应用并确保启用声音。要使用默认声音,您需要:localNotification.soundName = UILocalNotificationDefaultSoundName; 是的,我已经尝试过了,但是没有声音出现……我什么意思……是我需要添加任何框架或某些东西或我必须做的任何设置…… 如果您使用ios7,默认情况下禁用通知声音。只有用户可以打开它。 【参考方案1】:

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

如果你想使用默认声音:使用UILocalNotificationDefaultSoundName(由 Euroboy 建议)

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

【讨论】:

是的,我已经试过了,但是没有声音。是我需要添加任何框架或一些东西或我必须做的任何设置... 您使用的是自定义声音还是默认声音? 我尝试了默认的..但我听不到任何声音,所以我想如果可以使用自定义,我可以使用默认的没有问题,只要我在通知消息上获得一些声音效果。但它不起作用...... 我也在使用建议的默认值,但我什么也没听到?【参考方案2】:

就我而言,问题是我忘记注册 UIUserNotificationTypeSound。如果未注册 UIUserNotificationTypeSound,您的应用将不会在通知设置下提供“声音”选项。

这是本地和远程通知编程指南中的代码 sn-p(tilo 已经在上面添加了一个链接)。

UIUserNotificationType types = UIUserNotificationTypeBadge |
UIUserNotificationTypeSound | UIUserNotificationTypeAlert;

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

[[UIApplication sharedApplication] registerUserNotificationSettings:mySettings];

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

【讨论】:

【参考方案3】:

我在尝试将 mp3 文件作为本地通知声音播放时遇到了类似的问题。 声音不到 30 秒,它被捆绑在一起,表面上看起来一切正常。 几个小时后,我意识到问题是由在线 mp3 切割工具引起的。 我找到了更好的编辑器,并且文件在通知时可以播放。

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

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

【讨论】:

【参考方案4】:

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

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

【讨论】:

【参考方案5】:

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

【讨论】:

以上是关于如何为 UILocalNotification 添加声音?的主要内容,如果未能解决你的问题,请参考以下文章

如何为从照片框架获取的 PHAsset 添加分页?

UILocalNotification 每周重复一次

如何为每周和每年的每日设置 UILocalNotifications

如何为 Apple Watch 配置本地通知

如何为文本框添加样式效果

如何为移动应用设计循环事件系统?