我正在使用 Answering a call Mozilla 的文档以在 中接听 WebRTC 电话Mozilla Firefox 35.0.1 但是每次我尝试在对等连接上设置本地描述时都会失败。
错误是 内部错误 消息:
Cannot start media channels cause = OK
我的代码是用 CoffeeScript 编写的,但希望很容易阅读:
_create_answer: =>
# @param {mozRTCSessionDescription} answer the SDP answer.
on_answer_success = (answer) =>
console.log 'Create Answer: OK', answer
on_local_sdp_success = () =>
console.log 'Set local SDP (answer): OK'
@_send_local_sdp answer
on_local_sdp_failure = (error) =>
console.log "#{error.name} - #{error.message}"
console.log '(5) Set local SDP.', @logger.levels.INFO
@pc.setLocalDescription answer, on_local_sdp_success, on_local_sdp_failure
如您所见,在对等连接上设置本地描述是第五步。以下是我之前做的步骤:
navigator.getUserMedia
) pc.addStream / pc.onaddstream
) pc.setRemoteDescription
) pc.createAnswer
) pc.setLocalDescription
) 这是 Firefox 生成的 SDP 答案,我尝试通过
pc.setLocalDescription
将其设置为对等连接:v=0
o=Mozilla-SIPUA-35.0.1 2330 0 IN IP4 0.0.0.0
s=SIP Call
t=0 0
a=ice-ufrag:c6dc3e0f
a=ice-pwd:8ab875b276043fa2e76effc4fbe77014
a=fingerprint:sha-256 F5:53:7F:74:A4:3E:27:8F:4B:BC:64:37:ED:96:BD:2D:0D:22:49:FB:E5:AF:8C:E7:05:41:5F:EF:7F:F1:D9:A0
m=audio 9 RTP/SAVPF 96
c=IN IP4 0.0.0.0
a=rtpmap:96 opus/48000/2
a=ptime:20
a=sendrecv
a=setup:active
a=rtcp-mux
我需要注意其他事情吗?
最佳答案
这可能与转向all-trickle-ICE有关。您需要在正确的时间设置 onicecandidate 并安装它们。见 webrtc_landing/pc_test对于一个稍微复杂的例子(它通过在一个页面中有两个 peerconnections 变得复杂,调用自己,所以你必须有点小心,不要在有问题的 peerconnection 准备好它们之前安装 ice 候选者(请参阅该页面的来源)。此外,还有很多复选框选项可以打开和关闭不同的功能。
该示例页面可能需要一个小的更新。一旦您的代码工作正常,请随时输入并更正它! (如果有问题,请向我提供更新)
关于firefox - 无法在 Mozilla Firefox (WebRTC) 中设置本地描述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28295825/