CallKitとの連携
CallKit と SkyWay を共に利用する場合は、CallKit 内部でもAVAudioSessionの設定が変更されることによってバックグラウンド状態での着信時に音声が出力されない問題があるため、以下を実装してください。
SDK 内部ではWebRTCフレームワークを利用しており、AVAudioSessionの設定を必要に応じて変更しています。
1.CXProviderDelegateを利用するクラスにWebRTCフレームワークをimportする
import WebRTC2.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 = true4.CXProviderDelegateのprovider(_:didDeactivate)関数の中で以下のコードを実装します。
RTCAudioSession.sharedInstance().audioSessionDidDeactivate(audioSession)
RTCAudioSession.sharedInstance().isAudioEnabled = false
RTCAudioSession.sharedInstance().useManualAudio = falseCallKit との連携に関するご不明点がございましたら、Enterprise プランのテクニカルサポートよりお問い合わせください。テクニカルサポートについての詳細はこちらを参照してください。