Код: Выделить всё
RTCAudioSession.sharedInstance().useManualAudio = true
RTCAudioSession.sharedInstance().lockForConfiguration()
try! RTCAudioSession.sharedInstance().setCategory(
AVAudioSession.Category.playAndRecord.rawValue,
with: []
)
try! RTCAudioSession.sharedInstance().setMode(AVAudioSession.Mode.voiceChat.rawValue)
try! RTCAudioSession.sharedInstance().setActive(true)
RTCAudioSession.sharedInstance().unlockForConfiguration()
RTCAudioSession.sharedInstance().isAudioEnabled = true
Код: Выделить всё
peerConnection.transceivers.compactMap { $0.sender.track as? RTCAudioTrack }
.forEach { $0.isEnabled = isEnabled }
< /code>
Это, по -видимому, является общим решением этой проблемы и, например, описано на Stackoverflow [1] [2] и используется в примере проектов, где она также не работает. После этого больше нет звука, но индикатор оранжевого микрофона все еще показывается. Это не является стандартным в других приложениях, таких как сигнал, и мы хотели бы, чтобы индикатор оранжевого микрофона также не был показан. Как мы это достигли? Однако это не работает, и Avaudiosession выбрасывает ошибки, если мы не сделаем это, прежде чем включить аудиосессию. Отключение и впоследствии включение аудиосессии с rtcaudiosession.sharedInstance (). IsAudioEnabled = false
< /li>
[*] Мы попытались удалить дорожки непосредственно на соединении со стороны сверстников. Но это тоже ничего не меняет.
Подробнее здесь: https://stackoverflow.com/questions/763 ... rtc-in-ios