使用URL播放通知声音

时间:2014-12-06 09:39:11

标签: ios objective-c iphone avplayer

我希望我的应用程序通过URL播放通知声音。我的自定义声音文件位于特定的工作URL。所以,我希望我的应用程序使用该链接通知用户有关通知。

我已尝试AVPlayer,因为它通过网址Check this播放声音文件

AVPlayer代码在我使用[self playselectedsong] didFinishLaunchingWithOptions AppDelegateviewDidLoad函数中的didReceiveRemoteNotification(上面链接中提供的plz检查代码)调用时正常工作其他观点。

每当通知(URL)带有音频文件AVPlayer,然后我添加到{{1}}时,声音就不会播放。只显示文本通知。

3 个答案:

答案 0 :(得分:0)

声音必须来自应用包中的文件。

  

声音 |    string |应用程序包中声音文件的名称。这个文件中的声音是   作为警报播放。如果声音文件不存在或默认为   指定为值,播放默认警报声....

请参阅Apple参考here

答案 1 :(得分:0)

  1. 除非您在主套装上有声音,否则无法在远程通知上播放声音。 Check Apple document
  2.   

    对于iOS中的远程通知,您可以指定自定义声音   iOS播放时会播放本地或远程通知   应用。声音文件必须位于客户端的主包中   应用

    1. 即使您在主捆绑包上添加声音文件,该文件也不能超过30秒
    2.   

      播放时,自定义声音必须低于30秒。如果是自定义声音   超过该限制,而是播放默认的系统声音。

      我希望它可以帮助你。

答案 2 :(得分:0)

据说,现在可以播放来自远程文件的音频。如果消息被删除,我将在此处复制消息的内容。 https://forums.developer.apple.com/thread/118404

KevinE于2019年7月30日5:11 PM正确回答

您的应用应如何运作的细节差异很大 取决于您的特定用例和应用设计,但我们的一般 建议您使用即按即说应用程序 标准的推送通知,而不是用于消息传递的PushKit。 更具体地说,在接收方,您的通知服务 扩展程序应下载相关音频并将该音频附加到 您的特定邮件。

为了支持该方法,从iOS 13开始,系统会寻找 应用程序组容器中可能存在的声音文件以及 预先存在的搜索位置。该文档尚未更新 为此(),但是有头文件 描述注释详细信息的文档 “ UNNotificationSound.h”中的“ soundNamed:”:

//要为通知播放的声音文件。声音一定是 在应用程序数据容器的“库/声音”文件夹中或 应用程序组数据容器的“库/声音”文件夹。如果文件是 在容器中找不到,系统将在应用程序的捆绑包中查找。

详细说明一下,我们在下面查找声音文件 订单和位置:

  1. 您的应用程序将容器直接放置在“库/声音”中。
  2. 您的应用程序组目录位于名为“库/声音”的目录中
  3. 您的应用捆绑包

这里要牢记的主要内容:

目录2是“库/声音”,而不仅仅是“声音”。你需要 创建一个“ Library”目录,其中包含“ Sounds”目录,而不是 只是一个“声音”目录。应用程序直接容器仍然是 我们将排名第一,因此您需要注意自己的工作方式 为文件命名。我建议使用组目录 对于所有声音或遵循两种不同的命名约定 位置,使其永不碰撞。您的网络服务扩展 无法查看目录#1的内容,因此无法知道是否或 没有一个特定的名称会发生​​冲突。