swift 自定义本地通知声音不工作

ssm49v7z  于 2023-05-27  发布在  Swift
关注(0)|答案(3)|浏览(234)

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

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)

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

tcbh2hod

tcbh2hod1#

我在Apple文档中检查了有关 * 本地和远程通知 * 的问题,这里有一些有趣的事情:
本地和远程通知可以指定在传递通知时播放的自定义警报声音。您可以将音频数据打包到aiff、wav或caf文件中。由于自定义声音由系统声音工具播放,因此自定义声音必须采用以下音频数据格式之一:

  • 线性PCM
  • MA4(IMA/ADPCM)
  • µ法律
  • 法律

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

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

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

k10s72fa

k10s72fa2#

我遇到了这个问题,并找到了一个解决方案,把我的声音文件在应用程序根目录(其中AppDelegate文件存在)。

6za6bjd0

6za6bjd03#

为了让这个答案更容易。1.确保声音格式正确(.caf/m4 r等)2.选择生成设置和生成规则之间的生成阶段选项卡3.确保您的应用是在右侧平面上的“项目”下选择的目标,然后选择目标。4.现在展开复制捆绑资源选项卡5。现在点击加号按钮添加你的声音。当屏幕弹出选择其他和搜索您的声音(请选择复制如果需要标签)6.就这样
//////确保您在应用委托文件中执行的其余操作已使用选项完成启动。现在你可以通过调用init(sound:“yoursoundname.caf”)

相关问题