【发布时间】:2016-03-09 18:58:17
【问题描述】:
我设置了一个 WebRTC 应用程序,其工作方式如下:(从第 5 步开始,我停止使用 CALLER/CALLEE,因为 CALLER 或 CALLEE 都可以启动流)
- CALLER 仅使用数据通道创建对等连接,创建报价,设置本地描述,并将报价发送给 CALLEE。
- CALLEE 设置远程描述,创建答案,设置本地描述,并将答案发送给 CALLER。
- CALLER 设置远程描述。
- CALLER 和 CALLEE 可以通过数据通道成功通信。
- PEERA 将音频和/或视频流添加到对等连接。
- PEERA 的 onnegotiationneeded 事件触发。
- PEERA 创建报价,设置本地描述,并将报价发送给 PEERB。
- PEERB 接收报价,设置远程描述,创建答案,设置本地描述,并将答案发送给 PEERA。
如果 PEERA 和 PEERB 都使用 Chrome:
如果 PEERA 是 CALLER,则一切正常,PEERB 成功接收流。
如果 PEERA 是 CALLEE,则在设置 LOCAL 描述时,PEERB 在步骤 8 中爆炸。流由 PEERB 接收,但在发送到 <video> 元素时仅显示为黑框。
记录的错误是:
设置本地应答 sdp 失败:下推传输描述失败:为通道设置 SSL 角色失败。
当 PEERA 和 PEERB 都使用 FireFox 时: PEERA可以是CALLER也可以是CALLEE,一切正常,PEERB接收成功。
当 CALLEE 使用 Firefox 而 CALLER 使用 Chrome 时: PEERA可以是CALLER(Chrome)也可以是CALLEE(Firefox),一切正常,PEERB接收成功。
当 CALLEE 使用 Chrome 而 CALLER 使用 Firefox 时: 如果 PEERA 是 CALLER(FireFox),则一切正常,PEERB(Chrome) 成功接收流。 如果 PEERA 是 CALLEE(Chrome),那么在设置 REMOTE 描述时,PEERB(FireFox) 在第 8 步中爆炸。
记录的错误是:
DOMException [InvalidSessionDescriptionError:“此时不支持 ICE 重启(新的远程描述更改了 ice-ufrag 或 ice-pwd)ice-ufrag(旧):a59T34ixyZjsTUuJice-ufrag(新):rsCN1ugVKHJQzmMbice-pwd(旧) : KqOHtqdzFp6VwG+3hxbjcQFcice-pwd (new): uVvowvgsKIwuCq/bDmcGbSPA" 代码: 0 nsresult: 0x0]
【问题讨论】:
标签: google-chrome firefox webrtc