Den*_*nis 6 javascript p2p google-chrome sip webrtc
对于 WebRTC 应用程序,我想表明,在使用 Trickle ICE 时不再有远程候选对象。在W3C的WebRTC规范说:
当使用候选成员的空字符串调用此方法时,此方法还可用于指示远程候选的结束
和
这可以通过使用候选值调用 addIceCandidate 来指示,候选值的候选属性设置为空字符串
和
如果Candidate.candidate 是空字符串,则将候选人作为候选人结束指示处理
和
如果此 RTCIceCandidate 表示候选结束指示,则Candidate为空字符串。
因此,我在 Chrome 67 中尝试了不同的方法,但没有一个有效:
pc.addIceCandidate('');
Run Code Online (Sandbox Code Playgroud)
类型错误:无法在“RTCPeerConnection”上执行“addIceCandidate”:提供的值不是“(RTCIceCandidateInit 或 RTCIceCandidate)”类型
pc.addIceCandidate({candidate:''});
Run Code Online (Sandbox Code Playgroud)
类型错误:sdpMid 和 sdpMLineIndex 的候选缺失值
pc.addIceCandidate(new IceCandidate());
Run Code Online (Sandbox Code Playgroud)
无法构建“RTCIceCandidate”:需要 1 个参数,但仅存在 0 个参数。
pc.addIceCandidate(new IceCandidate(''));
Run Code Online (Sandbox Code Playgroud)
无法构造“RTCIceCandidate”:参数 1(“candidateInitDict”)不是对象。
pc.addIceCandidate(new IceCandidate({}));
Run Code Online (Sandbox Code Playgroud)
DOMException: 无法构造“RTCIceCandidate”:“候选”属性不是字符串,或者为空。
pc.addIceCandidate(new IceCandidate({candidate:''}));
Run Code Online (Sandbox Code Playgroud)
DOMException: 无法构造“RTCIceCandidate”:“候选”属性不是字符串,或者为空。
问题:如何指示远程候选人的结束?
[编辑]:
在 2016/2017 年,它只是null:
工作组决定保留这个特殊的“所有收集都已完成”为向后兼容的空候选”
看来,它不再起作用了:
pc.addIceCandidate(null);
Run Code Online (Sandbox Code Playgroud)
类型错误:sdpMid 和 sdpMLineIndex 的候选缺失值
pc.addIceCandidate({candidate: null});
Run Code Online (Sandbox Code Playgroud)
类型错误:sdpMid 和 sdpMLineIndex 的候选缺失值
没有浏览器实现该规范,并且该规范多次改变意见。https://github.com/webrtc/adapter将忽略 addIceCandidate(null)——这在 Microsoft Edge 中是必需的。
| 归档时间: |
|
| 查看次数: |
2104 次 |
| 最近记录: |