其他分享
首页 > 其他分享> > android – 如何重启?

android – 如何重启?

作者:互联网

我正在使用android libjingle开发一个基于webRTC的语音聊天应用程序.我希望通过使用ice重新连接用户,当他们将网络从wifi更改为4g或反之,或者断开连接时.我有一个关于使用libjingle实现它的问题.我将根据我的理解写下如何实现冰重启功能,让我知道有什么不对.

问:根据我的理解,首先我需要在MediaConstraints选项中将ice start选项设置为true,而不删除用于第一个连接的对等连接like,如下所示:

mediaConstraints.optional.add(new MediaConstraints.KeyValuePair("IceRestart", "true"));

其次,我需要使用对等连接객체(用于第一个连接)的updateIce方法更新MediaConstrants,如下所示:

peerConnection.updateIce(iceServers, mediaConstraints);

最后发送报价是否正确,这与基本的webrtc网络是一样的?

>我想仔细检查一下我是否理解得很好.如果我写的有什么问题,请告诉我!

解决方法:

为了重新启动冰,发送方应该发送带有不同ice-pwd或ice-ufrag的SDP文件.
IceRestart选项强制PeerConnection更新这些值.

步骤应该是:

>加上额外的约束:

cons.mandatory.add(new MediaConstraints.KeyValuePair(“IceRestart”,“true”));

>生成sdp文件:

pc.createOffer(new WebRtcObserver(callbacks),cons);

>将结果sdp设置为PeerConnection:

pc.setLocalDescription(new WebRtcObserver(callbacks),sdp);
 
>将其发送给远程同伴.

因此,步骤2-4与常规报价相同.

标签:android,webrtc,disconnect
来源: https://codeday.me/bug/20190701/1348485.html