自定义本地通知声音不起作用

时间:2017-11-21 08:30:09

标签: ios swift usernotifications

我正在尝试为本地通知提供自定义通知声音。但它仍然播放默认声音

let content = UNMutableNotificationContent()
content.title = NSString.localizedUserNotificationString(forKey:
            "Test", arguments: nil)
content.body = NSString.localizedUserNotificationString(forKey:
            "Test message", arguments: nil)
content.sound = UNNotificationSound.init(named: "marbles-daniel_simon.mp3")
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 60,
                                                        repeats: true)
 let request = UNNotificationRequest(identifier: "test", content: content, trigger: trigger)
center.add(request, withCompletionHandler: nil)

我在项目中添加了声音文件,如下所示

enter image description here

2 个答案:

答案 0 :(得分:1)

我在Apple文档中检查了有关本地和远程通知的问题,这里有一些有趣的内容:

  

本地和远程通知可以指定在传递通知时播放的自定义警报声音。您可以将音频数据打包在aiff,wav或caf文件中。由于它们由系统声音设备播放,因此自定义声音必须采用以下音频数据格式之一:

  • 线性PCM
  • MA4(IMA / ADPCM)
  • μLaw
  • ALAW
  

将自定义声音文件放在应用包中或应用容器目录的Library / Sounds文件夹中。 播放时自定义声音必须低于30秒。如果自定义声音超过此限制,则会播放默认系统声音。指定自定义声音时,仅指定要播放的声音文件的文件名。如果系统找到具有您提供的名称的合适声音文件,它将在发送通知时播放该声音。如果系统找不到合适的声音文件,它将播放默认声音。

content.sound = UNNotificationSound(named: "MySound.aiff")

更新:将文件添加到Xcode项目根目录。确保在添加文件时选择添加到目标,以便它们自动添加到捆绑资源

Add custom sound

答案 1 :(得分:0)

使此答案更容易.. 1.确保声音格式正确(.caf / m4r等) 2.选择在构建设置和构建规则之间找到的构建阶段选项卡 3.确保您的应用是在右侧的“项目然后目标”下选择的目标。 4.现在,展开副本包资源选项卡 5.现在单击加号按钮添加声音。当屏幕弹出时,选择其他并搜索您的声音(如果需要,请选择“复制”选项卡) 6.就这样。

/////// 确保您在应用程序委托文件中所做的其余工作确实完成了带选项的启动。 现在,您可以通过使用init(sound:“ yoursoundname.caf”)调用来播放声音