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() try RTCAudioSession.sharedInstance().setConfiguration(RTCAudioSessionConfiguration()) RTCAudioSession.sharedInstance().unlockForConfiguration() }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 プランのテクニカルサポートよりお問い合わせください。テクニカルサポートについての詳細はこちらを参照してください。