繁体   English   中英

使用 URL 播放通知声音

[英]Play notification sound using URL

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

我试过AVPlayer ,因为它通过 URL 播放声音文件检查这个

所述AVPlayer当我把它用代码工作[self playselectedsong] (PLZ检查上面的链接提供的代码)在didFinishLaunchingWithOptionsAppDelegateviewDidLoad的其它视图的功能。

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

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

声音| 字符串| 应用程序包中声音文件的名称。 此文件中的声音作为警报播放。 如果声音文件不存在或默认值指定为默认值,则播放默认警报声音....

在此处查看 Apple 参考

  1. 不,除非您在主捆绑包中拥有它,否则无法在远程通知上播放声音。 检查苹果文档

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

  1. 即使您在主包中添加了声音文件,该文件也不能超过 30 秒。

播放时自定义声音必须在 30 秒以下。 如果自定义声音超过该限制,则改为播放默认系统声音。

我希望它可以帮助你。

据说,现在可以从远程文件播放音频。 我将在此处复制邮件内容,以防它被删除。 https://forums.developer.apple.com/thread/118404

KevinE 于 2019 年 7 月 30 日下午 5:11 的正确答案

您的应用程序应该如何工作的细节将根据您的特定用例和应用程序设计而有很大差异,但我们对一键通应用程序的一般建议是您转向使用标准推送通知而不是 PushKit 进行消息传递。 更具体地说,在接收方,您的通知服务扩展应该下载相关的音频并将该声音附加到您的特定消息中。

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

// 为通知播放的声音文件。 声音必须位于应用程序数据容器的 Library/Sounds 文件夹或应用程序组数据容器的 Library/Sounds 文件夹中。 如果在容器中找不到该文件,系统将在应用程序包中查找。

详细分解,我们按以下顺序和位置查找声音文件:

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

这里要记住的主要事项:

目录#2 是“库/声音”,而不仅仅是“声音”。 您需要创建一个“Library”目录,其中包含“Sounds”目录,而不仅仅是“Sounds”目录。 应用程序直接容器仍然是我们首先要看的地方,所以你需要小心你如何命名你的文件。 我建议对所有声音使用组目录,或者遵循两个不同位置的命名约定,这样它们就不会发生冲突。 您的网络服务扩展无法看到目录 #1 的内容,因此它无法知道特定名称是否会发生冲突。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM