CallKitとの連携
CallKit と SkyWay を共に利用する場合は、CallKit 内部でもAVAudioSessionの設定が変更されることによってバックグラウンド状態での着信時に音声が出力されない問題があるため、以下を実装してください。
SDK 内部ではWebRTCフレームワークを利用しており、AVAudioSessionの設定を必要に応じて変更しています。
1.CXProviderDelegateを利用するクラスにWebRTCフレームワークをimportする
import WebRTC
2.CXProviderDelegateにおいて、応答したときのアクション(CXAnswerCallAction)が取得できるprovider(_:action:)関数の中で以下のコードを実装します。
RTCAudioSession.sharedInstance().useManualAudio = true RTCAudioSession.sharedInstance().isAudioEnabled = false do { RTCAudioSession.sharedInstance().lockForConfiguration() defer { RTCAudioSession.sharedInstance().unlockForConfiguration() } try RTCAudioSession.sharedInstance().setConfiguration(RTCAudioSessionConfiguration()) }catch { print("Setting configuration failed: \(error.localizedDescription)") }
3.CXProviderDelegateのprovider(_:didActivate)関数の中で以下のコードを実装します。
RTCAudioSession.sharedInstance().audioSessionDidActivate(audioSession) RTCAudioSession.sharedInstance().isAudioEnabled = true
4.CXProviderDelegateのprovider(_:didDeactivate)関数の中で以下のコードを実装します。
RTCAudioSession.sharedInstance().audioSessionDidDeactivate(audioSession) RTCAudioSession.sharedInstance().isAudioEnabled = false RTCAudioSession.sharedInstance().useManualAudio = false
CallKit との連携に関するご不明点がございましたら、Enterprise プランのテクニカルサポートよりお問い合わせください。テクニカルサポートについての詳細はこちらを参照してください。