fix: 被控端长时间不动,控制端无输出
This commit is contained in:
@@ -106,6 +106,10 @@ public class WebRtcClient {
|
||||
config.continualGatheringPolicy = PeerConnection.ContinualGatheringPolicy.GATHER_CONTINUALLY;
|
||||
config.iceCandidatePoolSize = 10;
|
||||
|
||||
// 建议添加以下配置,增强复杂网络下的稳定性
|
||||
config.iceTransportsType = PeerConnection.IceTransportsType.ALL;
|
||||
config.tcpCandidatePolicy = PeerConnection.TcpCandidatePolicy.ENABLED;
|
||||
|
||||
PeerObserver peerObserver = new PeerObserver(new PeerObserver.PeerEventListener() {
|
||||
@Override
|
||||
public void onIceCandidate(IceCandidate candidate) {
|
||||
@@ -117,9 +121,13 @@ public class WebRtcClient {
|
||||
Log.d(TAG, "ICE connection state: " + newState);
|
||||
if (newState == PeerConnection.IceConnectionState.CONNECTED) {
|
||||
if (connectionListener != null) connectionListener.onConnectionEstablished();
|
||||
} else if (newState == PeerConnection.IceConnectionState.FAILED ||
|
||||
newState == PeerConnection.IceConnectionState.DISCONNECTED) {
|
||||
} else if (newState == PeerConnection.IceConnectionState.DISCONNECTED) {
|
||||
// DISCONNECTED 可能是暂时的,通常建议观察一段时间或尝试重放信令
|
||||
Log.w(TAG, "ICE Disconnected, waiting for recovery...");
|
||||
} else if (newState == PeerConnection.IceConnectionState.FAILED) {
|
||||
// FAILED 通常意味着需要重新发起呼叫
|
||||
if (connectionListener != null) connectionListener.onDisconnected();
|
||||
// 这里可以触发重新创建 Offer 的逻辑
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user