Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

146
Visualizações
el código de video twilio deja una etiqueta de video cuando separo la pista

Así que estoy un poco confundido.

La forma en que esto funciona es que cada persona en mi videollamada ya tiene espacio en la interfaz de usuario cuando se unen. Cuando encienden su video, el código adjunta su pista a su respectivo espacio div en la interfaz de usuario.

Solo para mayor claridad, aquí está el código de inicio del video. No está relacionado con esta pregunta, pero es bueno para el contexto.

 startvideo(){ navigator.mediaDevices.getUserMedia({video: true}).then((stream)=>{ createLocalVideoTrack({ deviceId: stream.id }).then(localVideoTrack =>{ return this.videoclient.localParticipant.publishTrack((localVideoTrack)).then(publication =>{ this.localvideotrack = localVideoTrack; let div = document.getElementById( this.videoclient.localParticipant.sid + 'vid'); div.appendChild(localVideoTrack.attach()); this.removenovideohtml(this.videoclient.localParticipant.sid); this.mms.getDevicesOnComputer(); this.devicessubscription = this.mms.receiveDevices() .subscribe( (req: any)=>{ this.devicesoptions = req; } ); }); }); }); }

y aquí está el código del video final, esto está en contexto:

 endvideo(){ if(this.localvideotrack != null){ let div = document.getElementById( this.videoclient.localParticipant.sid + 'vid'); this.localvideotrack.detach(div); this.localvideotrack.stop(); this.videoclient.localParticipant.unpublishTrack(this.localvideotrack); this.addremovevideohtml(this.videoclient.localParticipant.sid); } }

ahora mira lo que pasa cuando empiezo y detengo el video tres veces

2 cuadros de chat en blanco cuando solo debería estar el video

y el html de la imagen de arriba

el html

Intenté agregar código para luego eliminar manualmente los elementos de video después de separar la track , pero no tuve éxito. Me pregunto si ustedes pueden ayudarme. Gracias.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Desarrollador evangelista de Twilio aquí.

El detach de separación en realidad devuelve el elemento multimedia al que se adjuntó previamente la pista, lo que le permite eliminar el elemento multimedia de la página si ya no lo necesita.

Tampoco necesita pasar div para detach , la pista de video es consciente del elemento al que está adjunta. Esto significa que tampoco necesita realizar la búsqueda getElementById .

Te recomiendo que actualices la función endvideo a lo siguiente:

 endvideo(){ if(this.localvideotrack != null){ const mediaElements = this.localvideotrack.detach(); mediaElements.forEach(mediaElement => mediaElement.remove()); this.localvideotrack.stop(); this.videoclient.localParticipant.unpublishTrack(this.localvideotrack); this.addremovevideohtml(this.videoclient.localParticipant.sid); } }
about 4 years ago · Juan Pablo Isaza Relatório

0

Es sorprendente y, sin embargo, realmente doloroso lo fácil que fue arreglar esto.

Aquí está el código endvideo() sin cambios:

 endvideo(){ if(this.localvideotrack != null){ let div = document.getElementById( this.videoclient.localParticipant.sid + 'vid'); this.localvideotrack.detach(div); this.localvideotrack.stop(); this.videoclient.localParticipant.unpublishTrack(this.localvideotrack); this.addremovevideohtml(this.videoclient.localParticipant.sid); }

ahora aquí está el nuevo código endvideo():

 endvideo(){ if(this.localvideotrack != null){ let div = document.getElementById( this.videoclient.localParticipant.sid + 'vid'); this.localvideotrack.detach(div); this.localvideotrack.stop(); div.innerHTML = ''; this.videoclient.localParticipant.unpublishTrack(this.localvideotrack); this.addremovevideohtml(this.videoclient.localParticipant.sid); } }

esta es la diferencia:

 div.innerHTML = '';
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda