【问题标题】:How to add sound for UILocalNotification?如何为 UILocalNotification 添加声音?
【发布时间】:2026-01-25 10:00:01
【问题描述】:

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

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,默认情况下禁用通知声音。只有用户可以打开它。

标签: ios uilocalnotification


【解决方案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 成员资格。对于我的情况,它没有被选中,并且通知仍然是系统默认的。

        【讨论】:

          最近更新 更多