Webrtc 不生成 TCP ICE,只生成 Android 上的 UDP



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

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?

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

相关内容

  • 没有找到相关文章

最新更新