在我的iPhone应用程序,我怎么可以播放存储在应用程序的文件目录为本地通知的声音文件,而不是一个应用程序包里面?
我见过一对夫妇的App Store上的应用程序做到这一点,我想知道这是怎么可能的。
在我的iPhone应用程序,我怎么可以播放存储在应用程序的文件目录为本地通知的声音文件,而不是一个应用程序包里面?
我见过一对夫妇的App Store上的应用程序做到这一点,我想知道这是怎么可能的。
它实际上是可以在本地通知,是不是在应用程序的主束(一个NSBundle)播放自定义声音。
声音已存储的在Library/Sounds
目录,例如: /var/mobile/Containers/Data/Application/DD7E6BA0-2FC0-4DE0-95BF-C2E9C9A94E08/Library/Sounds/mySound.caf
当您引用在UILocalNotification声音文件soundName
属性,只需写文件名,而不是完整的目录路径:
alert.soundName = @"mySound.caf";
经过测试,在iOS9.3.5工作。 我还没有尝试过其他的iOS版本呢。
脚注:
我偶然发现这个信息搜索关于远程通知苹果的文档时, 在这里 -特别是,“有效载荷键”部分,它提到的声音。
苹果的本地和远程通知(文件在这里 )也提到了声音文件可以,如果他们是在应用程序的主束或数据容器中使用:
要播放声音,分配一个声音给soundName财产。 您可以在应用程序的主束(或数据容器)分配一个非本地化的自定义声音的文件名,或者您可以指定UILocalNotificationDefaultSoundName获取默认的系统声音。 一种声音应该总是伴随警报消息或图标的徽章的显示; 声音不应该在没有其他通知类型的播放。
不,你不能播放音频文件不在捆绑,你不能在运行时修改应用程序包。 原因之一,苹果需要为本地通知所有声音与应用程序可能是出于安全考虑,这将有可能使对安全风险在审查过程中被检查了所有捆绑文件捆绑在一起。
究竟.....
You can not play audio file stored in document directory for alarm as a local push notification.
我也有过在App Store中的应用程序。那些各种应用了基本模样玩定制从本地推送通知文件目录的音频,但使用推送通知它不.insted它,当通知来在那个时候,当我们点击查看按钮该通知其产生的本地推送通知,应用程序将被调用,最后选定的音频文件得到发挥。
这样,应用程序是看起来像定制推送通知使用自定义的音频文件从文件目录