我开发了一个视频流应用程序,可以将视频从一个 android 设备流式传输到另一个设备(而不是相反)。当两台设备都在各自的 LTE 网络上时,该应用程序可以正常工作。但是,当其中一台设备连接到 WiFi 时,应用程序在握手(交换提议和答案)中失败并在日志中显示这一点
D/null localPeerCreation:
onIceConnectionChange() called with:
iceConnectionState = [CLOSED]
(在某些情况下有 FAILED 代替 CLOSED)
我不知道为什么会发生这种情况,在单个 LTE 的情况下它可以工作,但在 WIFI 情况下它不会。我一直在尝试调试这个问题很长一段时间,但我无法指出任何事情,因为对于 WebRTC 的 android 实现的引用也非常少。请帮忙。
编辑:在 Xirsys 回复候选人之前,我开始发送 Ice 候选人,因此从未使用过 TURN 服务器。所以我改变了我的应用程序,只有在从 Xirsys 收到候选人后才会发生任何握手。我知道这很愚蠢。