3

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

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)

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

在此处输入图像描述

4

2 回答 2

1

我在有关本地和远程通知的 Apple 文档中检查了您的问题,这是一些有趣的事情:

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

  • 线性PCM
  • MA4 (IMA/ADPCM)
  • 微定律
  • 一条法律

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

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

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

添加自定义声音

于 2017-11-21T09:09:21.790 回答
-2

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

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

于 2018-11-28T23:29:06.560 回答