bugfix
This commit is contained in:
parent
cf2513960d
commit
8cfa1e1cd7
@ -35,7 +35,7 @@ bricks.RTCClient = class extends bricks.VBox {
|
||||
this.videobox.add_widget(this.localVideo);
|
||||
this.videobox.add_widget(this.remoteVideo);
|
||||
this.add_widget(this.videobox);
|
||||
this.peerConnection;
|
||||
this.pc;
|
||||
this.onlineList= [];
|
||||
this.socket = new WebSocket(this.signaling_url);
|
||||
this.socket.onmessage = this.signaling_message_handle.bind(this);
|
||||
@ -139,12 +139,12 @@ bricks.RTCClient = class extends bricks.VBox {
|
||||
this.socket.send(JSON.stringify(d));
|
||||
}
|
||||
async send_offer(){
|
||||
var offer = await this.peerConnection.createOffer();
|
||||
this.peerConnection.setLocalDescription(offer);
|
||||
console.log('offer =', offer, this.peerConnection.localDescription);
|
||||
var offer = await this.pc.createOffer();
|
||||
this.pc.setLocalDescription(offer);
|
||||
console.log('offer =', offer, this.pc.localDescription);
|
||||
this.socket.send(JSON.stringify({
|
||||
type:'offer',
|
||||
offer:this.peerConnection.localDescription,
|
||||
offer:this.pc.localDescription,
|
||||
to:this.peer_info
|
||||
}));
|
||||
}
|
||||
@ -177,9 +177,9 @@ bricks.RTCClient = class extends bricks.VBox {
|
||||
}));
|
||||
}
|
||||
async call_close(active){
|
||||
this.peerConnection.onicecandidate = null;
|
||||
this.peerConnection.ontrack = null;
|
||||
this.peerConnection.close();
|
||||
this.pc.onicecandidate = null;
|
||||
this.pc.ontrack = null;
|
||||
this.pc.close();
|
||||
if (! active){
|
||||
this.socket.send(JSON.stringify({
|
||||
type:'disconnect',
|
||||
@ -210,11 +210,13 @@ bricks.RTCClient = class extends bricks.VBox {
|
||||
break;
|
||||
case 'offer':
|
||||
var offer = new RTCSessionDescription(d.offer);
|
||||
var answer = this.peerConnection.setRemoteDescription(offer);
|
||||
this.peerConnection.setLocalDescription(answer);
|
||||
this.pc.setRemoteDescription(offer);
|
||||
var answer = await this.pc.createAnswer();
|
||||
this.pc.setLocalDescription(answer);
|
||||
console.log('answer=', answer, 'desc=', this.pc.localDescription);
|
||||
this.socket.send(JSON.stringify({
|
||||
type:'answer',
|
||||
answer:answer,
|
||||
answer:this.pc.localDescription,
|
||||
to:this.peer_info
|
||||
}));
|
||||
console.log('offer branch exe');
|
||||
@ -222,16 +224,16 @@ bricks.RTCClient = class extends bricks.VBox {
|
||||
case 'answer':
|
||||
if (d.from == self.peer_info){
|
||||
var desc = new RTCSessionDescription(d.answer);
|
||||
this.peerConnection.setRemoteDescription(desc);
|
||||
this.pc.setRemoteDescription(desc);
|
||||
}
|
||||
console.log('answer branch exe');
|
||||
break;
|
||||
case 'iceCandidate':
|
||||
if (d.from == self.peer_info){
|
||||
var candidate = new RTCIceCandidate(d.candidate);
|
||||
this.peerConnection.addIceCandidate(candidate);
|
||||
}
|
||||
this.pc.addIceCandidate(candidate);
|
||||
console.log('iceCandidate branch exe');
|
||||
}
|
||||
break;
|
||||
case 'callAccepted':
|
||||
await this.createPeerConnection(this.peer_info);
|
||||
@ -263,16 +265,16 @@ bricks.RTCClient = class extends bricks.VBox {
|
||||
{ urls: 'stun:stunserver2024.stunprotocol.org:3478' }
|
||||
]
|
||||
};
|
||||
this.peerConnection = new RTCPeerConnection(configuration);
|
||||
this.pc = new RTCPeerConnection(configuration);
|
||||
// 处理本地流添加到 PeerConnection
|
||||
this.localVideo
|
||||
.get_stream()
|
||||
.getTracks()
|
||||
.forEach(track => {
|
||||
this.peerConnection.addTrack(track, this.localVideo.stream);
|
||||
this.pc.addTrack(track, this.localVideo.stream);
|
||||
});
|
||||
if (! this.peerConnection){
|
||||
console.log('peerConnection is null');
|
||||
if (! this.pc){
|
||||
console.log('pc is null');
|
||||
return;
|
||||
}
|
||||
if (this.role == 'requester'){
|
||||
@ -280,10 +282,10 @@ bricks.RTCClient = class extends bricks.VBox {
|
||||
}
|
||||
|
||||
// 处理 ICE 候选
|
||||
this.peerConnection.onicecandidate = this.send_candidate.bind(this, to_info);
|
||||
this.pc.onicecandidate = this.send_candidate.bind(this, to_info);
|
||||
|
||||
// 处理远程流添加
|
||||
this.peerConnection.ontrack = event => {
|
||||
this.pc.ontrack = event => {
|
||||
this.remoteVideo.set_stream(event.streams[0]);
|
||||
};
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user