2015-07-20 228 views
1

我不能使用以下方法。如何关闭webrtc数据通道?

由于我只使用datachannel(不使用getUserMedia)

<script> 
    peerConnection.removeStream(remoteStream) 
    remoteVideo.onerror = null; 
    remoteVideo.pause(); 
    remoteVideo.src = undefined; 
    remoteStream.stop(); 
    remoteStream.onended = null; 
    remoteStream = null; 

    peerConnection.removeStream(localStream) 

    localVideo.onerror = null; 
    localVideo.pause(); 
    localVideo.src = undefined; 
    localStream.stop(); 
    localStream.onended = null; 
    localStream = null; 
</script> 

有没有一种方法来关闭一个数据通道?

+0

你能澄清到底发生了什么问题吗?如果你不使用媒体,只有数据通道,你为什么要删除流和暂停视频元素? – xdumaine

回答

5

要关闭RTCDataChannel,您可以调用close() - 也可以在RTCPeerConnection上调用该函数,这将关闭在对等连接上创建的所有数据通道。

var pc = new RTCPeerConnection(); 
var dc = pc.createDataChannel("my channel"); 
var dc2 = pc.createDataChannel("my other channel"); 

dc.onclose = function() { 
    console.log("datachannel close"); 
}; 

dc2.onclose = function() { 
    console.log("dc2 close"); 
}; 

dc.close(); 
pc.close();