fix: 被控端长时间不动,控制端无输出

This commit is contained in:
2026-07-14 00:49:30 +08:00
parent fc91e6b1f6
commit 65317b2429
2 changed files with 35 additions and 2 deletions

View File

@@ -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 的逻辑
}
}