Tengo un código javascript que verifica si hay algunas personas conectadas a una sala en Twilio Programmable Video. Si hay participantes, el javascript agrega su video remoto a la página web.
// A function that adds a remote participant audio & video to the current web page. function AddParticipantAudioAndVideo(participant) { participant.tracks.forEach(publication => { if (publication.track) { document.getElementById("some html item").appendChild(track.attach()); console.log("track subscribed"); } }); participant.on('trackSubscribed', track => { document.getElementById("some html item").appendChild(track.attach()); console.log('track subscribed'); }); } function InitializeRoom() { // room is defined somewhere else room.on('participantConnected', participant => { console.log('A remote Participant connected : ' + participant.identity); AddParticipantAudioAndVideo(participant); }); // Loop over all the participants already connected to the room room.participants.forEach(participant => {AddParticipantAudioAndVideo(participant)}); }Si llamo a este código desde un clic de botón, por ejemplo, funciona y el video en vivo se reproduce correctamente:
<div onclick="InitializeRoom()">My Button</div>Sin embargo, si llamo exactamente al mismo código desde el controlador de eventos de carga de la página (antes de cualquier interacción manual con la página), no funciona y la etiqueta de video no se agrega al documento html.
window.addEventListener("load",function(event){ InitializeRoom(); });Sé que a Chrome no le gustan los videos con audio y reproducción automática = verdadero. Entonces me preguntaba si este problema se debe a la misma razón y si hay alguna solución para eso.
Gracias Saludos,
Sé que a Chrome no le gustan los videos con audio y reproducción automática = verdadero. Entonces me preguntaba si este problema se debe a la misma razón y si hay alguna solución para eso.
Sí exactamente.
Según sus otras preguntas, asumo que desea hacer esto en algún contexto automatizado donde tiene control sobre el navegador. Si es así, puede agregar una bandera a la línea de comando de Chrome/Chromium:
chrome.exe --autoplay-policy=no-user-gesture-requiredConsulte también: https://developer.chrome.com/blog/autoplay/#developer-switches