第一次调用后使用 Firefox for Android 时 ICE 失败
ICE Failed when using Firefox for Android after first call
在某些设备(特别是三星)上,我在建立 P2P 连接时发现以下错误:
Error processing ICE candidate-
Failed to set remote offer sdp: The order of m-lines in subsequent offer doesn't match order from previous offer/answer
如果我第一次建立连接,它工作得很好,但如果我第二次尝试,它会失败,直到我等待一段时间,即使我强制关闭 P2P 连接。对于 Android 或每个设备,Chrome 不会发生这种情况。
我在设置 Ice 候选之前的代码:
var candidate = new RTCIceCandidate({
sdpMLineIndex: evt.sdpMLineIndex,
sdpMid : evt.sdpMid,
candidate : evt.candidate
});
peerConn.addIceCandidate(candidate, onSuccess, onFailure);
看来我没有正确切断本地流,导致摄像头和麦克风看起来还在使用中。
if(localstream){
localstream.getTracks()[0].stop();
localstream = null;
}
我认为三星的层使 Firefox 的行为有所不同,因为它只发生在我测试的所有设备的三星设备上。
在某些设备(特别是三星)上,我在建立 P2P 连接时发现以下错误:
Error processing ICE candidate- Failed to set remote offer sdp: The order of m-lines in subsequent offer doesn't match order from previous offer/answer
如果我第一次建立连接,它工作得很好,但如果我第二次尝试,它会失败,直到我等待一段时间,即使我强制关闭 P2P 连接。对于 Android 或每个设备,Chrome 不会发生这种情况。
我在设置 Ice 候选之前的代码:
var candidate = new RTCIceCandidate({
sdpMLineIndex: evt.sdpMLineIndex,
sdpMid : evt.sdpMid,
candidate : evt.candidate
});
peerConn.addIceCandidate(candidate, onSuccess, onFailure);
看来我没有正确切断本地流,导致摄像头和麦克风看起来还在使用中。
if(localstream){
localstream.getTracks()[0].stop();
localstream = null;
}
我认为三星的层使 Firefox 的行为有所不同,因为它只发生在我测试的所有设备的三星设备上。