2017-08-14 115 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(); ... })


这个问题肯定是以某种方式提升的。