Twilio结束从本地网络摄像头捕获的视频

时间:2017-08-14 16:55:38

标签: javascript video webrtc twilio

我有一个功能正常的Twilio视频聊天应用程序正在按预期工作,除了当用户点击关闭按钮时我无法结束视频流。我已经浏览了Javascript快速入门并尝试了以下实现:
(尝试使用WebRTC的方法,抱怨Twilio.Media.MediaStream未定义);

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();
};

是否有一些简单的我缺少或者需要更多有关我的实施的详细信息?

1 个答案:

答案 0 :(得分:0)

我必须确保所有代码更改都在Twilio.Connect.createLocalTracks().then(function(){...});之内。在其他地方尝试类似的修补程序不起作用。我必须将本地曲目分配给trackArray,然后对该阵列上的条目调用stop() Twilio.Video.createLocalTracks().then(function(localTracks) { ... trackArray = localTracks; trackArray[0].stop(); trackArray[1].stop(); ... })

这个问题一定是以某种方式悬挂。