Iphone 在UILocalNotification中播放录制的音频

Iphone 在UILocalNotification中播放录制的音频,iphone,ios,ipad,audio,uilocalnotification,Iphone,Ios,Ipad,Audio,Uilocalnotification,我正在使用AlarmClock应用程序。在这个应用程序中,用户记录他/她的声音并设置警报。为此,我使用UILocalNotification,在这个应用程序中,我希望在警报出现时设置录制的声音。 问题在于将声音设置为UILocalNotification。我浏览了一下,发现您必须将录制的文件保存在应用程序的主捆绑包中,而不是文档目录中。因此,我浏览了一下应用程序的主捆绑包中的写入文件,发现您无法在主捆绑包中写入文件 所以,请给我建议,如何播放录制的音频时,通知来了 这个应用程序可以很好地使用我

我正在使用AlarmClock应用程序。在这个应用程序中,用户记录他/她的声音并设置警报。为此,我使用UILocalNotification,在这个应用程序中,我希望在警报出现时设置录制的声音。 问题在于将声音设置为UILocalNotification。我浏览了一下,发现您必须将录制的文件保存在应用程序的主捆绑包中,而不是文档目录中。因此,我浏览了一下应用程序的主捆绑包中的写入文件,发现您无法在主捆绑包中写入文件

所以,请给我建议,如何播放录制的音频时,通知来了


这个应用程序可以很好地使用我想要的功能。

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

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

查看
UNNotificationSound.h
头文件中的方法说明注释:

public convenience init(named name: String)
说:

要为通知播放的声音文件的名称。声音 文件必须包含在应用程序包或库/声音中 应用程序数据容器的文件夹。如果两个位置都存在文件 然后首选应用程序数据容器中的文件

因此,如果要将外部声音文件放入
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")
// ...

它在哪里说你只能播放保存在应用程序主捆绑包中的声音?@MichaelDautermann下面的链接。所以我很困惑是的,我也这么认为,但在iTunes“aida提醒”应用程序中,我认为它将在付费版本中工作。所以我不确定这是否可能。谢谢回复。