Android webrtc 不适用于 3g、4g

标签 android video-streaming webrtc kurento apprtc

在 android 应用程序中,我有用于视频通话应用程序的用户 webrtc。

如果手机连接到 wifi,则应用程序可以完美运行。

当我将 wifi 更改为移动数据并启动应用程序时,应用程序无法运行,也无法显示视频。

我的应用程序和服务器端 kurento 中有用户 webrtc。

以下具有状态的场景列表:

  1. 浏览器客户端 + 移动客户端 -> 两者在同一个 Wifi 网络上(KMS 服务器在同一 wifi 网络上)-> 工作正常
  2. 移动客户端 + 移动客户端 -> 都在同一个 Wifi 网络上(KMS 服务器在同一 wifi 网络上)-> 工作正常
  3. 浏览器客户端 + 移动客户端 -> wifi 上的其中一个(KMS 服务器上 同一 wifi 网络)和其他移动数据网络 -> 不工作
  4. 移动客户端 + 移动客户端 -> 其中一个在 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/

相关文章:

android - 使用 SurfaceView 居中裁剪 Exoplayer

android - 如果设备启动,我的应用程序后台进程停止

java - 使用 JAVA 处理大文件的音频流服务器

android - token 不是来自此身份池的受支持提供商 Amazon Mobile Hub Android

绑定(bind)到远程服务时的 Android 应用程序生命周期

java - 下载像 hotstar 这样的离线视频

iphone - 从 ASP.NET MVC2 将视频文件提供给 iPhone

javascript - 使用 AudioContext.createMediaStreamSource 与 HTMLAudioElement.srcObject 播放 MediaStream

node.js - 如何从 Node.js 中的连续图像流创建 MediaStream 轨道? (与 WebRTC 一起使用)

android - WebRTC 使用 Peerjs 和原生 Android/iOS 客户端