同样的问题。如果您尝试在 RTCPeerConnection 的配置中设置 iceCandidatePoolSize = 10,则 oneicecandidate 会触发一次空候选,iceConnectionState 会更改为已连接状态。
然后我看收发器 pc.getTransceivers()[0].sender.transport.iceTransport
聚集状态:“完成”状态:“连接”
pc.getTransceivers()[0].sender.transport.iceTransport.getSelectedCandidatePair() 成功!有一对选定的!
但是 pc.connectionState 仍然有一个连接状态,并且无休止地挂在其中......
试过wifi和gsm连接......我什么都不懂!
检查同一网络(wifi)中的其他设备:
Android 11 - 三星 Galaxy M12 - 成功
Android 11 - 三星 Galaxy TAB A (2019) - 成功
Android 11 - 三星 Galaxy A22 (my) -失败
我的解决方法:
let pc = new RTCPeerConnection({iceCandidatePoolSize: 1}) //any > 0
pc.oniceconnectionstatechange = function(){
if(pc.iceConnectionState === "connected") {
for (let tr of pc.getTransceivers()) {
let selected = tr.sender.transport.iceTransport.getSelectedCandidatePair();
if (selected) {
//send selected.local to you server...
}
}
}
}
错误铬:
https ://bugs.chromium.org/p/chromium/issues/detail?id=1240237