安卓webrtc在3G、4G网络下无法工作

12
在Android应用程序中,我使用WebRTC实现视频通话功能。
如果移动设备连接到WiFi,则应用程序可以正常工作。
当我将WiFi更改为使用移动数据并启动应用程序时,应用程序无法正常工作,也无法显示视频。
我在应用程序中使用WebRTC,并在服务器端使用了Kurento。
下面是一些场景及其状态的列表:
1.浏览器客户端+移动客户端->均连接同一个WiFi网络(KMS服务器连接同一个WiFi网络)->正常工作。 2.移动客户端+移动客户端->均连接同一个WiFi网络(KMS服务器连接同一个WiFi网络)->正常工作。 3.浏览器客户端+移动客户端->其中一个连接WiFi网络(KMS服务器连接同一个WiFi网络),另一个连接移动数据网络->不起作用。 4.移动客户端+移动客户端->其中一个连接WiFi网络(KMS服务器连接同一个WiFi网络),另一个连接移动数据网络->不起作用。
我们已经检查了所有这些情况生成的候选项,并发现它们都是相同的,唯一的区别是多个候选项被生成。
我们已经创建了Turn服务器和Stun服务器,但是在使用3G连接的Android客户端上仍然无法显示视频。
如果有解决方案,请帮助我。谢谢!

寻求调试帮助的问题(“为什么这段代码不起作用?”)必须在问题本身中包含所需的行为、具体问题或错误以及重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参见:如何创建一个最小、完整和可验证的示例。 - Maveňツ
你能找到解决问题的方法吗? - MostafaMashayekhi
1个回答

4

理论上,网络类型不应影响WebRTC是否工作。

但是,还有其他因素会影响。首先,如果两个设备连接到同一个Wi-Fi网络,则不需要TURN服务器。如果通过移动数据连接,则可能不是这种情况,因此您应该配置STUN / TURN服务器。要测试服务器,可以使用https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

其次,网络质量可能会影响连接。您应该进行网络速度测试,并记住延迟和抖动比下载/上传速度更重要。您可以禁用视频,仅使用占用更少带宽的音频进行测试。


通过套接字通信,您的意思是您有音频吗?如果是的话,那么最有可能的问题是网络带宽/延迟。您是否在之前/期间/之后进行了速度测试? - Adrian Ber
我们已经尝试连接不同的WiFi网络,但是无法正常工作。它只能在我们主机所在的同一WiFi网络下工作。 - adit microsys
你好Adrian Ber,以下是一些场景及其状态:浏览器客户端+移动客户端->均在同一WiFi网络上(KMS服务器也在同一WiFi网络上)->正常工作。 移动客户端+移动客户端->均在同一WiFi网络上(KMS服务器也在同一WiFi网络上)->正常工作。浏览器客户端+移动客户端->其中一个使用WiFi连接(KMS服务器也在同一WiFi网络上),另一个使用移动数据网络->不工作。 移动客户端+移动客户端->其中一个使用WiFi连接(KMS服务器也在同一WiFi网络上),另一个使用移动数据网络->不工作。 - adit microsys
然后,您需要配置一个TURN服务器。我更新了我的答案,说明如何测试您是否正确配置了TURN服务器。 - Adrian Ber
由于在3G网络下,带有转向服务器的Android客户端无法显示视频和音频。 - adit microsys
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接