2017-08-14 159 views
0

我有一個正在運行的Twilio視頻聊天應用程序,正如我所料,除了當用戶點擊關閉按鈕時無法結束視頻流。我已經瀏覽了Javascript快速入門,並嘗試了以下實現:
(嘗試使用WebRTC的方法,抱怨Twilio.Media.MediaStream未定義);Twilio從本地網絡攝像頭結束視頻捕獲

function endVidConf(room){ 
    console.log('Attempting to end Vid Conf'); 
    room.localParticipant.tracks.forEach(function(track) { 
     var attachedElements = track.detach(); 
     attachedElements.forEach(function(element){ 
      element.remove(); 
     }); 
    }); 
    Twilio.Media.MediaStream.getAudioTracks()[0].stop(); 
    Twilio.Media.MediaStream.getVideoTracks()[0].stop(); 
    room.disconnect(); 
}; 

(使用track.stop() - 攝像頭依然是上):

function endVidConf(room){ 
    console.log('Attempting to end Vid Conf'); 
    room.localParticipant.tracks.forEach(function(track) { 
     var attachedElements = track.detach(); 
     attachedElements.forEach(function(element){ 
      element.remove(); 
     }); 
     track.stop(); 
    }); 
    room.disconnect(); 
}; 

有一些簡單的我失蹤或需要我的實現更多的細節?

+0

room.localParticipant.removeTracks(trackArray,true); 其中trackArray是localParticipant曲目的數組也不起作用。 –

回答

0

我不得不確保所有的代碼更改都在Twilio.Connect.createLocalTracks().then(function(){...});
在其他地方嘗試類似的修補程序是行不通的。我必須將本地軌道分配給trackArray,然後對該陣列上的條目調用stop()。
Twilio.Video.createLocalTracks().then(function(localTracks) { ... trackArray = localTracks; trackArray[0].stop(); trackArray[1].stop(); ... })


這個問題肯定是以某種方式提升的。