首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用本地通知播放录制的声音?

如何使用本地通知播放录制的声音?
EN

Stack Overflow用户
提问于 2011-06-29 08:06:06
回答 3查看 2.4K关注 0票数 0

我有一个应用程序,要求用户录制他们自己的消息,以便在未来的某个时间播放。我的意图是使用UILocalNotification来实现这一点。不幸的是,似乎与本地通知相关联的声音必须存储在主束中,但是用户不能录制并将其保存在束中。

如何通过本地通知播放用户录制的声音文件?

或者-如果应用程序没有运行,有没有办法捕获本地通知(不等待用户响应警报),然后播放所需的声音文件?

谢谢!

EN

回答 3

Stack Overflow用户

发布于 2011-07-03 08:03:23

通过设置UILocalNotification的属性,可以将(自定义)声音分配给它,如下所示:

代码语言:javascript
复制
localNotification.soundName = @"MySoundFile.wav";

不幸的是,根据参考,不可能使用没有存储在主包中或由apple声明的声音文件:

对于此属性,请在应用程序的主包或UILocalNotificationDefaultSoundName中指定声音资源的文件名(包括扩展名),以请求默认系统声音。

另请参阅UILocalNotification Class Reference #soundName

票数 4
EN

Stack Overflow用户

发布于 2016-02-17 02:05:54

我认为这在iOS9上是可能的,这是苹果的文档所说的:

对于远程通知在iOS中,您可以指定iOS在显示应用程序的本地或远程通知时播放的自定义声音。声音文件可以位于客户端应用程序的主包中,也可以位于应用程序数据容器的Library/ sound文件夹中。

我测试了将声音保存到库/声音文件夹中,然后将其与本地通知一起使用,它在iOS 9上运行良好,之后我在iOS 8上尝试了同样的方法,但不起作用,所以我的结论是这只适用于iOS 9

您可以通过以下方式访问库目录:

代码语言:javascript
复制
let fileManager = NSFileManager.defaultManager()
let libraryPath = NSSearchPathForDirectoriesInDomains(.LibraryDirectory, .UserDomainMask, true)[0]
let soundsPath = libraryPath + "/Sounds"

如果目录不存在,则必须创建该目录:

代码语言:javascript
复制
fileManager.createDirectoryAtPath(soundsPath, withIntermediateDirectories: false, attributes: nil)

然后你可以在那里保存你的声音。

票数 4
EN

Stack Overflow用户

发布于 2014-08-15 16:57:15

本地通知的soundname属性可以引用应用程序捆绑包中声音文件的路径。无法使用用户语音的录音,因为无法在运行时将其保存到应用捆绑包。

除非用户点击了通知,否则无法显示默认通知,然后打开应用程序并播放录制的语音。这意味着,如果用户不使用电话,他们收听录音的唯一机会就是拿起电话,解锁,然后点击通知。所以我相信这和你想要的相去甚远。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6514423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档