Я пытаюсь выяснить, как лучше всего сделать следующее: имея одноранговое соединение между сторонами A и B, я хочу добавить третью сторону C, но сложность в том, что мне не нужна полная конфигурация сетки, B должен связываться с C только через A (настройка MCU, где A — MCU).
B <-> A <-> C
До сих пор я пробовал следующее: когда создается peerConnectionAC и вызывается обратный вызов didAddStream, я добавляю peerConnectionAB.remoteStream в качестве локального потока в peerConnectionAC, например так:
peerConnectionAC.addStream(remoteStreamAB)
Тогда я делаю это наоборот:
peerConnectionAB.addStream(remoteStreamAC)
В этот момент WebRTC запускает обратный вызов для повторного согласования, поэтому новое предложение создается и отправляется соответствующим сторонам.
Звук теперь течет между B и C через A, но он ужасно искажен, почти неразборчив. Звук, поступающий от микрофона A к B и C, по-прежнему чистый.
Оба одноранговых соединения используют один и тот же кодек (OPUS, но пробовали и с iLBC) и одинаковую частоту дискретизации.
Единственная ссылка, которую я нашел для этого, - это вопрос более полугода назад , но без четкого ответа.
Кажется, это легко сделать в настройках браузера, но мне нужно, чтобы это работало на iOS/ Android как отдельное приложение.
Может ли кто-нибудь дать мне идею или указатель на то, как исправить искаженный звук?