在UILocalNotification中播放录制的音频

3
我正在开发一个闹钟应用程序,在此用户可以录制其声音并设置闹铃。我使用了UILocalNotification,想要在提醒时播放录制的声音。
问题是如何将声音设置到UILocalNotification中。我查阅资料后发现声音文件必须保存在应用的主要bundle中,而不能保存在文档目录中。我又搜索了如何在应用程序的主要bundle中写入文件,但我发现这是不可行的。
请给我建议,如何在通知到来时播放录制的音频。 这个应用程序与我所需的功能相同,运行良好。

在哪里说您只能播放保存在应用程序主包中的声音? - Michael Dautermann
@MichaelDautermann 下面的链接。所以我很困惑 http://stackoverflow.com/questions/7040551/in-uilocalnotification-sound-set-recorded-audio - M007
2个回答

3
我认为这是不可能的。UINotification 只能搜索主包中的自定义声音资源,而你不能在运行时写入主包。

是的,我也这么认为,但在iTunes的“aida reminder”应用程序中,我认为它只能在付费版本中使用。所以我不确定是否可能...感谢您的回复。 - M007

0

iOS 10 开始,您可以使用位于 Library/Sounds 目录中的声音文件进行通知。

查看 UNNotificationSound.h 头文件中的方法描述注释:

public convenience init(named name: String)

说明:

通知播放的声音文件名。声音文件必须包含在应用程序的捆绑包或应用程序数据容器中的Library/Sounds文件夹中。如果两个位置都存在文件,则优先使用应用程序数据容器中的文件。

因此,如果您有任何更改将外部声音文件放入Library/Sounds文件夹中的机会,您可以执行以下操作:

let content = UNMutableNotificationContent()
content.title = "Title"
content.subtitle = ""
content.body = "Message"
content.userInfo = nil
content.sound = UNNotificationSound.init(named: "sound-from-server.m4a")
// ...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接