Реализация WebRT C android не работает, когда одно из устройств подключено к WiFi - PullRequest
0 голосов
/ 21 марта 2020

Я разработал приложение для потоковой передачи видео, которое транслирует видео с одного устройства android на другое (а не наоборот). Когда оба устройства находятся в своей отдельной сети LTE, приложение работает нормально. Но когда одно из устройств подключено к Wi-Fi, приложение терпит неудачу при установлении связи (обмен предложением и ответом) и показывает это в журналах

D/null localPeerCreation:
onIceConnectionChange() called with:
iceConnectionState = [CLOSED]

(, в некоторых случаях вместо сообщения появляется СБОЙ). ЗАКРЫТО )

Я не знаю, почему это происходит, что в случае отдельных LTE это работает, но с WIFI это не так. Я пытался отладить эту проблему в течение достаточно долгого времени, но я не могу указать пальцем на что-либо, потому что ссылок на android реализацию WebRT C также очень мало. Пожалуйста, помогите.

Редактировать: Я начал отправлять кандидатов на Ice, прежде чем Xirsys ответил с кандидатами, поэтому сервер TURN никогда не использовался. Поэтому я изменил свое приложение так, чтобы любое рукопожатие происходило только после того, как кандидаты были получены от Xirsys. Я знаю, это было довольно глупо.

1 Ответ

1 голос
/ 22 марта 2020

Я не знаком с TIRN-серверами Xirsys, но он может не охватывать все случаи, когда необходимо подключить LTE к обоим клиентам.

Я хотел бы проверить следующее.

  • Какие типы транспорта поддерживаются (UDP, TCP и TLS)
  • Генерирует ли сервер TURN прослушиватели для IPv4 и IPv6?
  • Как выглядит сеть на обоих устройствах (IPv4 / IPv6 позади) NAT?)

Если вы можете поделиться кандидатами с обеих сторон и вашей конфигурацией RTCC, это очень поможет. Обязательно анонимизируйте свои URL и IP!

...