WebRTC 進階

串流中關閉與開啟視訊

  let localVideoEnabled = true;
  let localAudioEnabled = true;
  
  function handleVideoDisconnect() {
    localVideoEnabled = !localVideoEnabled;
    localStream.getTracks()[1].enabled = localVideoEnabled;
  }
  
  function handleAudioDisconnect() {
    localAudioEnabled = !localAudioEnabled;
    localStream.getTracks()[0].enabled = localAudioEnabled;
  }
  
  // 如果用 track.stop() 會永久關閉

可選擇關音訊或視訊。

控制斷線重連

首先斷線時發送 websocket 訊息給對方,並且關閉 peerConnection,然後清空 video srcObject。

對方接收到訊息後

init function 如下,即為初始化連線與獲取 media 等設備

Data channel 傳送訊息

  1. 建立 channel

只用建立一個 channel 即可,撥打方建立,然後 createOffer 後會把 channel 送給遠端

2. 之後監聽接收 channel

3. 發送訊息到 channel

可參考:https://webrtc.github.io/samples/src/content/datachannel/basic/js/main.js

ShareScreen

獲取畫面並重新設定 addStream 然後傳給對方

重新發起 createOffer

Node.js client for webRTC

從後端與其他 peer 連線

https://github.com/node-webrtc/node-webrtc-examples

Last updated

Was this helpful?