3

我正在开发 AlarmClock 应用程序。在这个用户中记录他/她的声音并设置警报。为此我正在使用 UILocalNotification 并且我想在警报出现时设置录制的声音。问题出在 UILocalNotification 的设置声音中。我为此冲浪,发现您必须将录制的文件保存在应用程序的主包中而不是文档目录中。所以我在应用程序的主包中搜索写入文件,发现您无法在其中写入文件主捆绑。

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

http://itunes.apple.com/sg/app/aida-reminder-lite-voice-reminders/id469454389?mt=8&ls=1

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

4

2 回答 2

3

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

于 2012-06-02T05:59:07.480 回答
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")
// ...
于 2018-03-15T17:42:01.383 回答