【问题标题】:WebRTC android implementation not working when one of the device is connected to WiFi当其中一台设备连接到 WiFi 时,WebRTC android 实现不起作用
【发布时间】:2020-03-21 19:54:43
【问题描述】:

我开发了一个视频流应用程序,可以将视频从一个 android 设备流式传输到另一个设备(而不是相反)。当两台设备都在各自的 LTE 网络上时,该应用程序可以正常工作。但是,当其中一台设备连接到 WiFi 时,应用程序在握手(交换提议和答案)中失败并在日志中显示这一点

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

在某些情况下会用 FAILED 代替 CLOSED

我不知道为什么会发生这种情况,在单个 LTE 的情况下它可以工作,但在 WIFI 情况下却不行。我一直在尝试调试这个问题很长一段时间,但我无法指出任何事情,因为对于 WebRTC 的 android 实现的引用也非常少。请帮忙。

编辑:在 Xirsys 回复候选人之前,我开始发送 Ice 候选人,因此从未使用过 TURN 服务器。所以我改变了我的应用程序,只有在从 Xirsys 收到候选人后才会发生任何握手。我知道这很愚蠢。

【问题讨论】:

    标签: android webrtc openwebrtc webrtc-android xirsys


    【解决方案1】:

    我不熟悉 Xirsys 的 TURN 服务器,但它可能无法涵盖需要同时连接 LTE 两个客户端的所有情况。

    我会检查以下内容。

    • 支持哪些传输类型(UDP、TCP 和 TLS)
    • TURN 服务器是否为 IPv4 和 IPv6 生成侦听器?
    • 两台设备上的网络是什么样的(IPv4/IPv6,在 NAT 后面?)

    如果您可以分享双方的候选人和您的 RTCConfiguration,那将有很大帮助。确保匿名您的 URL 和 IP!

    【讨论】:

    • 我在回合服务器用 Ice 候选人回复我之前发送了答案,这就是问题所在。这很愚蠢:(。但感谢@Sean
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-18
    • 2021-02-26
    • 2012-01-16
    • 1970-01-01
    • 1970-01-01
    • 2021-02-12
    相关资源
    最近更新 更多