我正在使用
Livekit SDK
开发语音通信应用程序。前台一切正常。 AudioSession被激活,并且音频被传输。不过,我想添加一个功能。我希望我的应用程序即使在后台或终止时也能接收音频。我知道当应用程序处于该状态时我可以通过发送后台推送通知来运行代码。我做了几次测试(例如:写入 Firebase 数据库,效果很好),但在这种情况下唯一不起作用的是 AudioSession 激活。它失败并出现错误Session activation failed
,没有更多线索。我尝试了类别和模式的每种组合,但没有成功。 Xcode 中的后台模式已激活: - 音频、AirPlay 和画中画 - 后台处理
这是Livekit的限制吗?
我需要在这个函数中编写代码:
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]) async -> UIBackgroundFetchResult {
// Livekit room connection. Here is where AudioSession activation fails
}
出于隐私原因,不希望您在后台启动音频会话,尤其是录音会话。您唯一的方法是使用 Callkit 或始终保持音频会话处于活动状态。