2017-08-14 4 views
0

私は期待どおりに機能しているTwilioビデオチャットアプリケーションを使用していますが、ユーザーが閉じるボタンを押したときにビデオストリームを終了することはできません。 Javascriptのクイックスタートを見て、次の実装を試しました。
(WebRTCのメソッドを使用しようとしましたが、Twilio.Media.MediaStreamが定義されていないと文句を言います)。Twilio Endビデオキャプチャローカルウェブカメラ

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


問題は何とか巻き上げていたに違いありません。