UILocalNotification 从应用文档播放声音

Posted

技术标签:

【中文标题】UILocalNotification 从应用文档播放声音【英文标题】:UILocalNotification play sound from app documents 【发布时间】:2011-10-26 14:36:24 【问题描述】:

我知道UILocalNotification 仅支持来自应用程序包的soundName,但我看到程序在通知中播放我录制的声音,即使程序已关闭。如何实施?任何想法对我来说都很重要..

【问题讨论】:

../Documents/sound.caf 方法曾经可以工作,但我认为它可能在 ios 6 beta 中被破坏。其他开发人员可以验证吗?如果可以的话,我会留下这个作为评论。 遇到同样的问题,你能解决这个问题吗?我知道这个线程已有几年的历史,但也许您可以提供一些见解。谢谢! 【参考方案1】:

获得NSURL 到应用程序文档目录的可靠方法是这样的......

NSURL *documentsDirectoryURL = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];

然后您可以像这样获得对您的声音文件的NSURL 引用...

NSURL *soundURL = [documentsDirectoryURL URLByAppendingPathComponent:@"sound.caf"];

如果您需要该 URL 处资源路径的字符串表示形式,您可以像这样获取它...

NSString *pathRepresentation = [soundURL absoluteString];

【讨论】:

嗨,马克,我试过了,但它在我的应用程序中不起作用?我在文档目录中记录了 .m4a 文件。还有其他需要注意的吗? 嗨@Meghan,如果我没记错的话,文件需要是.caf 才能作为短音播放。以下是有关转换音频文件以在 iOS 上使用的更多信息。 gamua.com/blog/2010/06/sound-on-ios-best-practices 我已经测试了 m4a 文件包,但我的问题是我在文档目录中有一个文件,我想将它设置为 UILocalnotification 声音。【参考方案2】:

我检查了下一个方法在 ios 5.0.1 上的工作:

像这样设置相对路径

notify.soundName = @"../Documents/blabla.caf"

【讨论】:

以上是关于UILocalNotification 从应用文档播放声音的主要内容,如果未能解决你的问题,请参考以下文章

UILocalNotification 触发时自动将应用程序从后台带到前台?

应用被 UILocalNotification 唤醒(激活)

从后台杀死应用程序后 UILocalnotification 不起作用

从 UILocalNotification 打开应用程序时转到视图控制器

iOS8 - UILocalNotification,稍后从代码中检查权限

从 iPad 删除应用程序时如何删除 UILocalNotification applicationIconBadgeNumber?