##SkyWayを使用してビデオ通話するiOSアプリ
音声の出力が通話用スピーカーだったのを内蔵スピーカーに変更しました。
AVFoundation
をインポートして
remoteAudioSpeakerを定義
func remoteAudioSpeaker() {
self.remoteStream?.setEnableAudioTrack(0, enable: true)
DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
// speaker
do {
try AVAudioSession.sharedInstance().setActive(true)
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayAndRecord)
try AVAudioSession.sharedInstance().overrideOutputAudioPort(AVAudioSessionPortOverride.speaker)
self.remoteStream?.setEnableAudioTrack(0, enable: true)
} catch {
print("AVAudioSessionCategoryPlayAndRecord error")
}
}
}
イベントストリームでremoteAudioSpeakerを呼び出し
mediaConnection.on(SKWMediaConnectionEventEnum.MEDIACONNECTION_EVENT_STREAM, callback: { (obj) -> Void in
self.remoteAudioSpeaker()
if let msStream = obj as? SKWMediaStream{
self.remoteStream = msStream
}
})
###注意点
STREAMのなかに直接書くのではなく、外部に書いて1秒遅れで出力先を設定すべし