【发布时间】:2019-08-18 20:04:00
【问题描述】:
如果我们在前台启动应用程序,一切正常。但是,当应用程序之前被杀死并通过在锁定屏幕上接收 PushKit 通知重新启动时,就会出现问题。
当应用收到 PushKit 通知时,我们会显示 CallKit UI。这可以正常工作。用户可以通过 WebRTC 接听电话并建立连接。但是根本没有音频。
奇怪的是,如果用户通过点击应用程序图标从 CallKit 屏幕打开应用程序,音频就会开始并按预期工作。所以看起来问题出在音频会话配置上。也许出于某种原因,iOS 不允许激活我们的音频会话。
我们正在使用 Google 的 WebRTC 库:
pod 'GoogleWebRTC', '1.1.26115'
我们尝试了不同的方法:
启用/禁用音频背景模式。
在从 CallKit 委托接收到
didActivate回调之前和之后配置音频会话。手动配置音频会话并使用来自 WebRTC 库的
RTCAudioSession.sharedInstance。启用和禁用
RTCAudioSession.useManualAudio。
这是我们遇到问题的场景:
杀死应用程序。锁定手机。
用另一部手机呼叫此用户。
PushKit 启动应用,应用呈现 CallKit 屏幕,用户接听电话。
连接正确建立。通话进行中,但两端没有声音。
点击 CallKit 屏幕上的应用程序图标(最右下角)并解锁手机。音频开始。
感谢任何帮助。
【问题讨论】:
-
您在调用
reportNewIncomingCall(with:update:completion:)之前是否尝试过配置音频会话? -
可能与以下相同的问题:stackoverflow.com/questions/48070163/… 请检查我的答案
-
你解决了吗?有完全相同的问题并尝试了所有这些方法,但它没有帮助。
标签: swift webrtc callkit pushkit ios-background-mode