2015-07-20 233 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();