【问题标题】:Webrtc does not generate TCP ICEs, only UDP on AndroidWebrtc 不生成 TCP ICE,Android 上只生成 UDP
【发布时间】:2020-08-31 23:19:16
【问题描述】:

我们正在我们的应用程序中实现 Webrtc。库版本:implementation 'org.webrtc:google-webrtc:1.0.30039'。在 Android 上,它只生成 UDP ICE 候选者,在 IOS 上生成 UDP 和 TCP,尽管 lib 版本在两者上都是最新的,并且设置大致相同。我们认为因为一些需要 TURN 的调用不会立即工作,而是在重新连接后,当 webrtc 库将其状态更改为失败时,我们重新发送一个报价,其中已经包含 ICE。以下是我对 Peerconnection 的设置:

  PeerConnection.RTCConfiguration rtcConfig =
            new PeerConnection.RTCConfiguration(peerIceServers);
    rtcConfig.tcpCandidatePolicy = PeerConnection.TcpCandidatePolicy.ENABLED;
    rtcConfig.bundlePolicy = PeerConnection.BundlePolicy.MAXBUNDLE;
    rtcConfig.rtcpMuxPolicy = PeerConnection.RtcpMuxPolicy.REQUIRE;
    rtcConfig.continualGatheringPolicy = PeerConnection.ContinualGatheringPolicy.GATHER_CONTINUALLY;
    // Use ECDSA encryption.
    rtcConfig.keyType = PeerConnection.KeyType.ECDSA;

我应该设置什么样的设置才能使 Webrtc 库也生成 TCP ICE?

【问题讨论】:

    标签: android webrtc turn rtcpeerconnection


    【解决方案1】:

    通过双重生成报价并发送第二个报价已解决该问题。事实证明,第二个报价已经包含 ICE,仍然仅限 UDP,无需单独发送。我不知道为什么,但它有所帮助。

    【讨论】:

    • 你能分享一些sn-ps的代码吗?你是怎么做到的?我正在开发 android 视频通话应用程序。它在 WiFi 上运行良好,但在移动数据上运行 appRtcClient.sendOfferSdp(desc);很长一段时间后调用。你能帮忙吗?
    • 再次生成并发送报价
    猜你喜欢
    • 1970-01-01
    • 2012-01-02
    • 1970-01-01
    • 1970-01-01
    • 2018-08-21
    • 2012-06-12
    • 1970-01-01
    • 2013-09-24
    • 1970-01-01
    相关资源
    最近更新 更多