我正在开发一个 WebRTC 视频流程序,当用户想要添加视频流时,该程序必须能够重新协商 rtc 连接。因为它是我的程序关闭现有的 RTCPeerConnection 设置变量Connection,null然后创建一个新的 RTCPeerConnection 并重新启动提供/应答交换。
我收到错误:
无法设置远程应答 sdp:应答中的 m 行顺序与报价中的顺序不匹配。拒绝回答。
设置初始连接后。
尽管连接已完全关闭并在两端设置为空,但为什么会发生这种情况?
对于 webRTC 报价,我收到错误“位置 26 处的 JSON 中的意外令牌”。我正在使用 ajax 调用从数据库中获取报价并将其作为纯文本返回以解析为 JSON 对象。当我尝试解析字符串时,出现“JSON 中的意外标记”错误。
这是作为纯字符串的 JSON
{"type":"offer","sdp":"v=0
o=- 552724588234335198 2 IN IP4 127.0.0.1
s=-
t=0 0
a=msid-semantic: WMS
m=application 52731 DTLS/SCTP 5000
c=IN IP4 192.169.2.55
a=candidate:2144433521 1 udp 2122257663 2002:c0a9:237::c0a9:237 52729 typ host generation 0 network-id 4
a=candidate:1068658286 1 udp 2122189567 2001::9d38:90d7:88a:6fc:52ce:a035 52730 typ host generation 0 network-id 7
a=candidate:398976708 1 udp 2122129151 192.169.2.55 52731 typ host generation 0 network-id 3
a=candidate:827492737 1 tcp 1518277887 2002:c0a9:237::c0a9:237 9 typ host tcptype active generation …Run Code Online (Sandbox Code Playgroud) 我正在开发两个对等体之间的信号系统,并注意到RTCPeerConnection.onicecandidate事件没有触发.我检查了iceGatheringState,它总是返回"new",这意味着对等连接还没有开始搜索冰候选者.
如何从本地机器开始收集冰候选对象以发送给同伴?
和
如果我不想涓涓细流,那么一旦聚集,我怎么能通过sdp发送它们?
这是我当前的代码,我能够成功获得sdp数据并捕获它们以便发送,以便检查两个客户端是否连接是唯一的问题.
var peerConn = new webkitRTCPeerConnection(
{'iceServers':[{'url':'stun:stun.1.google.com:19302'}]}
);
var remoteConn = new webkitRTCPeerConnection(
{'iceServers':[{'url':'stun:stun.1.google.com:19302'}]}
);
alert(peerConn.iceGatheringState);
///Event Handlers//
//will be called when each event occurs
//onicecandidate
//returns local ice candidates (when gathered) to be sent to peer
//peerConn.onicecandidate = onicecandidate;
peerConn.onicecandidate = function(iceEvent){ //not firing
if(iceEvent.candidate === null){
alert(peerConn.iceConnectionState);
alert(iceEvent.candidate);
//send to peer or put in with sdp data
}
}
Run Code Online (Sandbox Code Playgroud)