Webrtc:onIceConnectionChange 和 onConnectionChange 有什么区别

Webrtc: What is the difference between onIceConnectionChange and onConnectionChange

我正在使用 java 开发一个带有 Webrtc 的 adroid 视频通话应用程序。当其他对等方的连接状态发生变化时,我想做一些事情。例如,当他在失去连接后试图重新连接时。 我在 PeerConnection.Observer 中找到了一些方法,但我不知道应该使用哪一个以及为什么。 我发现:

** onIceConnectionChange(PeerConnection.IceConnectionState iceConnectionState) ,

** onConnectionChange(PeerConnection.PeerConnectionState newState)

** 和 onIceConnectionReceivingChange 我需要你的帮助!

iceConnectionState:表示peer之间network/transport层连接的状态。 ICE 连接涉及检查两个对等点之间的一堆 ICE 候选对,以尝试找到两个对等点可以通信的套接字对。一旦状态变为 connected,那么对等点就可以通信了。

connectionState:建立在iceConnectionState之上,代表对等点之间的application层连接。本质上,连接状态是 iceConnection + DTLS。如果您不关心底层细节,那么这就是要监视的状态。 connectedconnectionState 意味着 connectediceConnectionState

onIceConnectionReceivingChange:这似乎不是“官方”(草案)的一部分WebRTC API。它可能来自您正在使用的 javascript 适配器或库。