首页 文章

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

提问于
浏览
1

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

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 回答

  • 1

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

    //////确保您在app委托文件中执行的其余操作确实已完成启动选项 . 现在你可以通过用init调用它来播放声音(声音:“yoursoundname.caf”)

  • 0

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

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

    • 线性PCM

    • MA4(IMA / ADPCM)

    • μLaw

    • aLaw

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

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

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

    Add custom sound

相关问题