在 android 应用程序中,我有用于视频通话应用程序的用户 webrtc。
如果手机连接到 wifi,则应用程序可以完美运行。
当我将 wifi 更改为移动数据并启动应用程序时,应用程序无法运行,也无法显示视频。
我的应用程序和服务器端 kurento 中有用户 webrtc。
以下具有状态的场景列表:
- 浏览器客户端 + 移动客户端 -> 两者在同一个 Wifi 网络上(KMS 服务器在同一 wifi 网络上)-> 工作正常。
- 移动客户端 + 移动客户端 -> 都在同一个 Wifi 网络上(KMS 服务器在同一 wifi 网络上)-> 工作正常。
- 浏览器客户端 + 移动客户端 -> wifi 上的其中一个(KMS 服务器上 同一 wifi 网络)和其他移动数据网络 -> 不工作
- 移动客户端 + 移动客户端 -> 其中一个在 wifi 上(KMS 服务器在 同一 wifi 网络)和其他移动数据网络 -> 不工作
我们检查了针对所有这种情况生成的候选对象,发现它们是相同的,唯一的区别是生成了多个候选对象。
我们在 3g 连接的 android 客户端中创建了 Turn 服务器和 Stun,但视频不显示。
任何人有解决方案然后帮助我。
提前致谢。
最佳答案
理论上网络类型不应该影响 WebRTC 是否工作。
但是,还有其他因素会影响这一点。首先,如果两个设备都连接到同一个 Wi-fi 网络,那么您就不需要 TURN 服务器。如果通过移动数据连接,则不会出现这种情况,因此您应该配置一个 STUN/TURN 服务器。要测试服务器,您可以使用 https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/ .
其次,网络质量会影响连接。您应该进行网络速度测试,并记住延迟和抖动比下载/上传速度更重要。您可以禁用视频并仅使用占用更少带宽的音频进行测试。
关于Android webrtc 不适用于 3g、4g,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40041981/