Callkit扬声器bug / WhatsApp如何修复它?

问题描述 投票:21回答:3

我有一个Callkit功能的应用程序。当我按下扬声器按钮时,它将闪烁并设置为关闭状态(有时扬声器设置为LOUD但图标仍然是OFF)。当我多次点击它时......可以清楚地看到此功能的行为不正确。

然而,WhatsApp在开始时扬声器关闭,3秒后它激活它和它的工作。有没有人遇到类似的东西,可以给我一个解决方案?

Youtube video link to demonstrate my problem

ios swift xcode whatsapp callkit
3个回答
3
投票

苹果工程师提出了一种解决方法,它应该修复callkit而不是正确激活音频会话:

解决方法是在调用configureAudioSession()方法之前,在应用程序生命周期的早期配置应用程序的音频会话(调用-provider:performAnswerCallAction:)。例如,您可以在调用configureAudioSession()之前立即调用-[CXProvider reportNewIncomingCallWithUUID:update:completion:],以确保在通知CallKit有关传入呼叫之前完全配置音频会话。

来自:https://forums.developer.apple.com/thread/64544#189703

如果这没有帮助,您可能应该发布一个示例项目,它可以再现您的行为,以便我们能够进一步分析它。


0
投票

来自Abnormal behavior of speaker button on system provided call screen

在之前的版本中也遇到了同样的问题。所以这不是电话套件上发生的新问题。此问题必须从iOS解决。我们对此没有任何控制权。

请浏览apple开发者论坛

CallKit/detect speaker set

[CALLKIT] audio session not activating?


0
投票

也许你可以将setMode设置为AVAudioSessionModeDefault。

当我使用CallKit + WebRTC时

  1. 我配置AVAudioSessionModeDefault模式。
  2. Alloc CXProvider和reportNewIncomingCallWithUUID
  3. 使用WebRTC,ICEConnected后,WebRTC更改模式为AVAudioSessionModeVoiceChat,然后发生扬声器问题。
  4. 后来我将setMode设置回AVAudioSessionModeDefault,扬声器效果很好。
© www.soinside.com 2019 - 2024. All rights reserved.