UserNotifications 使用用户创建的声音作为提示音

使用自定义声音作为通知提示音

在 iOS 10 以后,iOS 使用了全新的 UserNotifications  作为通知 API,这允许开发者使用 图片、视频、声音 等富媒体作为通知内容,同时进一步地,你还可以使用 Notification Content Extension 来自定义通知的大小和内容布局。
如果要自定义通知的提示音,那么你可以给 UNNotificationContent  的 sound  属性添加 UNNotificationSound  实例:

由高亮行可以看出,自定义提示音的具体位置是由 iOS 系统自动指定的。众所周知,这些自定义的提示音必须预先放置在 app 的 main bundle 里,长度不能超过 30s,否则就会被系统提示音所替代。

那么 ,有没有什么办法,能让 app 以用户提供的声音作为通知提示音呢?

使用用户自定义的声音作为通知提示音

用户自定义的声音,这里我们指用户从其他 app 导入的声音、从网站上下载的声音,或者是我们 app 自己后期从服务器下载的提示音。那么,有没有办法,不把提示音预置在 app 里,而是后期加载呢?

这一点在网络上很少有人提及,其实是可以的。如果你去仔细阅读官方文档,那么你会在这个页面发现这样一句话:

Files for custom sounds must be located in your executable’s main bundle or in the Library/Sounds directory of your app’s container directory.

也就是说,除了预置在 app 的 main bundle 里之外,我们也可以把下载的声音放置在 Library/Sounds  这个目录里!

这样一来,下载或者用户导入的声音就可以作为提示音使用了!——当然,不要忘记也要遵循 30s 内这个规定。

同时,由于 api 限制,名称最好不要重复,不然就说不好系统用哪个声音作为提示音了。

参考文献

UILocalNotification: Playing a Custom Audio File saved in Documents Directory

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.