WebRTC для модуля голосовой связи.
Навигационный SDK Mapbox для пошаговой навигации.
Проблема, с которой я столкнулся, заключается в том, что когда Mapbox Navigation, которая использует UI NavigationViewController SDK, воспроизводит звуковые инструкции (например, «Поверните налево через 100 метров»), она прерывает и останавливает звук текущего Голосовая связь WebRTC. Такое поведение отрицательно влияет на работу пользователя, поскольку для приложения критически важны как общение в реальном времени, так и навигация.
Вот настройка аудиосеанса WebRTC, которую я использую для модуля голосовой связи:
Вот настройка аудиосеанса WebRTC, которую я использую для модуля голосовой связи:
р>
Код: Выделить всё
func setupAudioSession() {
self.rtcAudioSession.lockForConfiguration()
do {
print(self.rtcAudioSession.categoryOptions)
try self.rtcAudioSession.setCategory(AVAudioSession.Category.playAndRecord.rawValue, with: [.mixWithOthers])
try self.rtcAudioSession.setMode(AVAudioSession.Mode.voiceChat.rawValue)
try self.rtcAudioSession.overrideOutputAudioPort(.speaker)
} catch let error {
debugPrint("Error changing AVAudioSession category: \(error)")
}
self.rtcAudioSession.unlockForConfiguration()
}
Когда Mapbox Navigation начинает воспроизводить аудиоинструкцию, похоже, что AVAudioSession и меняет его режим на AVAudioSessionModeDefault, в то время как WebRTC ранее установил его на AVAudioSessionModeVoiceChat, что приводит к остановке звука WebRTC.
После Звук Mapbox завершается, звук WebRTC не восстанавливает исходное состояние.
Моя цель
Я хочу использовать голосовую связь WebRTC и звук Mapbox Navigation для одновременной работы без перерывов. Звук WebRTC не должен прекращаться после воспроизведения инструкций Mapbox.
Подробнее здесь: https://stackoverflow.com/questions/792 ... ing-each-o