在接收推送通知时在后台调用音频

Posted

技术标签:

【中文标题】在接收推送通知时在后台调用音频【英文标题】:Calling Audio in background on receiving Push Notification 【发布时间】:2017-05-05 09:38:22 【问题描述】:

我已经在 didReceiveRemoteNotification fetchCompletionHandler 上实现了 AVAudioPlayer,它在接收推送通知时播放音频。

但是我的应用被拒绝说

您的应用在 UIBackgroundModes 键中声明支持音频 您的 Info.plist 但不包含需要持久性的功能 音频。

后续步骤

音频键适用于在后台向用户提供可听内容的应用,例如音乐播放器或 流式音频应用程序。请修改您的应用程序以提供可听的 当应用程序在后台时向用户提供内容或删除 UIBackgroundModes 键中的“音频”设置。

我发现苹果不允许这样做..默认情况下,它会在收到通知时允许 30 秒播放声音..我需要连续播放声音,直到用户打开应用程序。他们有什么解决方案吗?

【问题讨论】:

不,没有解决方案可以满足您的要求,除了设置几个重复的本地通知以引起用户注意。但这也可能会被拒绝,因为 Apple 不允许此类试图引起用户注意的应用程序。 这不是强制性的,用户可以在应用程序的设置中停止它 好吧,没有办法做到这一点,音频背景键适用于播放音频的应用程序,例如网络广播音乐流应用程序。但是您不能在收到推送通知后使用它来播放音频。因此,您将需要使用多个本地通知,这些通知会在您收到推送通知时回放并安排它们。 苹果团队是否有机会接受本地通知 可能。你永远无法分辨 【参考方案1】:

您不需要使用背景音频播放。

    要在后台播放或执行任何任务,您可以使用带有过期处理程序的后台任务:https://www.raywenderlich.com/143128/background-modes-tutorial-getting-started

    为本地通知实现 UNUserNotifications: https://useyourloaf.com/blog/local-notifications-with-ios-10/

    使用 NSTimer 执行声音任务并根据您的要求显示 30 秒或 1 分钟的本地通知。

    https://github.com/TUNER88/iOSSystemSoundsLibrary:用于您在后台播放的系统声音

【讨论】:

以上是关于在接收推送通知时在后台调用音频的主要内容,如果未能解决你的问题,请参考以下文章

收到推送通知时在后台执行代码

使用 GCM 关闭应用程序时在 iOS 中接收推送通知

应用程序运行时在 iOS 中抑制/隐藏推送通知

如何在快速接收推送通知时进行服务器调用?

在后台接收推送通知 iOS

MFP 应用程序在应用程序未运行时在推送通知期间点击时崩溃