Как получить доступ к видео, уже опубликованным в комнате, и отобразить их на экране новых участников? - PullRequest
0 голосов
/ 12 марта 2020

Я использую JavaScript SDK от twilio для создания приложения видеочата с Django бэкэндом

Когда я подключаюсь к комнате с помощью Video.connect (), видео нового участник добавляется на экраны существующих участников, но новые участники не видят существующих участников. Как показать видео старых участников новым участникам?

Это мой сценарий


    console.log('conectes')

    const Video = Twilio.Video;


    Video.connect(context.person_token, {
      name: context.room_name,
      audio: false,
      video: { width: 640 }
    }).then(room => {
      alert(`Successfully joined a Room: ${room}`);
      room.participants.forEach(participant=>{
        participant.tracks.forEach(publication => {
          if (publication.isSubscribed) {
            const track = publication.track;
            document.getElementById('remote-media-div').appendChild(track.attach());
          }
        });
      });

      room.on('participantConnected', participant => {
        alert(`A remote Participant connected: ${participant}`);
        alert('scripty')
        alert(`Participant "${participant.identity}" connected`);

        participant.tracks.forEach(publication => {
          if (publication.isSubscribed) {
            const track = publication.track;
            document.getElementById('remote-media-div').appendChild(track.attach());
          }
        });

        participant.on('trackSubscribed', track => {
          document.getElementById('remote-media-div').appendChild(track.attach());
        });



      });

    }, error => {
      alert(`Unable to connect to Room: ${error.message}`);
    });

    function toggleLocalVideo(){
      const local_video = document.getElementById('local_video');
      const localMediaContainer = document.getElementById('local-media');
      if (local_video.checked == true){
        Video.createLocalVideoTrack().then(track => {
          localMediaContainer.appendChild(track.attach());
        });
      } else {    
        while(localMediaContainer.hasChildNodes){
          localMediaContainer.removeChild(localMediaContainer.firstChild);
        }
      }
    }

Пытался найти функцию, чтобы сделать это везде в документах

...