WEBRTC setRemoteDescription方法出错



我正在使用WEBRTC用Vue和socket.io做这个应用程序,但当我尝试使用RTCPeerConnection的方法时,setRemoteDescription,传递sdp参数,我收到这个错误

Uncaught (in promise) SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

在被叫方收到这种格式的报价后:

offerWEBRTC: Object { type: "offer"
, sdp: "v=0rno=- 4541021516758240611 2 IN IP4 
127.0.0.1rns=-rnt=0 0rna=group:BUNDLE 0 1rna=extmap-allow-mixedrna=msid-
semantic: WMS uNxCWJIzYxNdDeeaGvIfxsgNEMkADiu4dHZbrnm=audio 9 UDP/TLS/RTP/SAVPF 111 63 
103 104 9 0 8 106 105 13 110 112 113 126rnc=IN IP4 0.0.0.0rna=rtcp:9 IN IP4 
0.0.0.0rna=ice-ufrag:+J7Irna=ice-pwd:UdlojqyyLfe9hSJhL2H+i5Wwrna=ice-
options:tricklerna=fingerprint:sha-256 
1B:64:59:54:92:16:2A:0E:CF:8D:0C:14:45:36:A4:0B:49:9D:D5:7B:1A:9B:0E:BB:7D:9E:2D:13:8C:A8
:64:CErna=setup:actpassrna=mid:0rna=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-
levelrna=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-
timerna=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-
extensions-01rna=extmap:4 urn:ietf:params:rtp-
hdrext:sdes:midrna=sendrecvrna=msid:uNxCWJIzYxNdDeeaGvIfxsgNEMkADiu4dHZb aeb4e1a9-
af4c-4847-95d9-74fa295d817brna=rtcp-muxrna=rtpmap:111 opus/48000/2rna=rtcp-fb:111 
transport-ccrna=fmtp:111 minptime=10;useinbandfec=1rna=rtpmap:63 
red/48000/2rna=fmtp:63 111/111rna=rtpmap:103 ISAC/16000rna=rtpmap:104 
ISAC/32000rna=rtpmap:9 G722/8000rna=rtpmap:0 PCMU/8000rna=rtpmap:8 
PCMA/8000rna=rtpmap:106 CN/32000rna=rtpmap:105 CN/16000rna=rtpmap:13 
CN/8000rna=rtpmap:110 telephone-event/48000rna=rtpmap:112 telephone-
event/32000rna=rtpmap:113 telephone-event/16000rna=rtpmap:126 telephone-
event/8000rna=ssrc:3144952377 cname:Bp6iErLqqeidCIX2rna=ssrc:3144952377 
msid:uNxCWJIzYxNdDeeaGvIfxsgNEMkADiu4dHZb aeb4e1a9-af4c-4847-95d9-
74fa295d817brna=ssrc:3144952377 
mslabel:uNxCWJIzYxNdDeeaGvIfxsgNEMkADiu4dHZbrna=ssrc:3144952377 label:aeb4e1a9-af4c-
4847-95d9-74fa295d817brnm=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 102 121 127 120 
125 107 108 109 35 36 124 119 123 118 114 115 116rnc=IN IP4 0.0.0.0rna=rtcp:9 IN IP4 
0.0.0.0rna=ice-ufrag:+J7Irna=ice-pwd:UdlojqyyLfe9hSJhL2H+i5Wwrna=ice-
options:tricklerna=fingerprint:sha-256 .....
rn" }

在被叫方,一个方法被初始化以处理该要约,并给出一个答案,因此在该方法中,我将setRemoteDescription((设置为一个:


let myConnectionPeer: RTCPeerConnection = new RTCPeerConnection();
async answerHandler(payload:TypeOfMyPayload){
await myConnectionPeer.setRemoteDescription(JSON.parse(payload.offerWEBRTC?.sdp))
.......
}

如果我不解析它,错误会有点不同,比如:

RTCPeerConnection.setRemoteDescription: Argument 1 can't be converted to a dictionary.

但是继续犯那个错误。任何帮助都将是惊人的!!!

最终,尽管接收到了数据,但这并不是方法所要求的JSON,因此需要通过Object.assign方法,将整个对象解析为JSON格式。。。然后一切都成功了。如果有人有同样的问题,希望这能帮助

相关内容

最新更新