系统提供的呼叫屏幕上扬声器按钮的异常行为

时间:2017-12-29 13:50:18

标签: ios swift voip callkit portsip

我们使用CallKit和PortSIP编写VoIP应用程序,这是一个仅在iOS 11.2.x上重现的问题。 当用户点击CallKit上的扬声器按钮时,屏幕系统启用扬声器,但图标仍处于禁用状态。如果用户再次点击,系统也会打开扬声器并忘记按钮。要禁用扬声器用户,请按两次按钮。有人遇到过这个bug吗?你的解决方案是什么? (:

感谢。

2 个答案:

答案 0 :(得分:7)

    RTCDispatcher.dispatchAsync(on: RTCDispatcherQueueType.typeAudioSession) {
        let audioSession = RTCAudioSession.sharedInstance()
        audioSession.lockForConfiguration()
        let configuration = RTCAudioSessionConfiguration.webRTC()
        configuration.categoryOptions = [AVAudioSessionCategoryOptions.allowBluetoothA2DP,AVAudioSessionCategoryOptions.duckOthers,
                                         AVAudioSessionCategoryOptions.allowBluetooth]
        try? audioSession.setConfiguration(configuration)
        audioSession.unlockForConfiguration()
    }

它帮助我使用CallKit。扬声器按钮按预期工作。

答案 1 :(得分:-1)

以前的版本也遇到了同样的问题。所以这不是电话套件上发生的新问题。

此问题必须从iOS 解决。我们无法控制这一点。