Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

153
Vistas
Convierta la carga NewVideoById de YouTube en asincrónica

Estoy construyendo una plataforma para la visualización simultánea de video multiusuario. Para lograr esto, estoy usando la API iframe de youtube que tiene una función loadNewVideoById que le permite actualizar el video dentro del objeto del reproductor y, por lo tanto, ver un nuevo video.

Construí mi propio control deslizante de tiempo que se supone que toma la duración del nuevo video e inicializa el atributo máximo del control deslizante de rango, que representa el tiempo.

Aquí está la función que está manejando esa parte.

 function initSliderAndTime() { setTimeout(() => { var durationInSeconds = player.getDuration() $('#time-slider').attr('max', player.getDuration().toString().match(/^-?\d+(?:\.\d{0,1})?/)[0]) $('#end-time')[0].innerText = calculateTimeFormat(durationInSeconds); }, 2000); }

que se llama en la función loadNewVideo (no desde youtube) que se llama cuando un usuario quiere ver un nuevo video.

 function loadNewVideo(videoId, unMute, startSeconds) { player.loadVideoById({videoId: videoId, startSeconds: startSeconds | 0, }); $('#video-input')[0].value = "https://www.youtube.com/watch?v=" + videoId; if(unMute) { player.unMute() $('#mute-unmute-btn').children().removeClass('fa-volume-xmark'); $('#mute-unmute-btn').children().addClass('fa-volume-high') } showVideoControls(); initSliderAndTime(); forwardingInterval = setInterval(function () { updateSliderAndTime() }, 100); }

Si no configuro un tiempo de espera lo suficientemente grande, la función del objeto getDuration no se carga lo suficientemente rápido y la función falla.

Youtube tiene una función OnReadyFuntion que se supone que maneja el reproductor cuando se crea. Desafortunadamente, esta función no se llama cuando se actualiza el reproductor, solo cuando se crea.

¿Cómo se puede reconfigurar esto para que ejecute la función initSlider cuando getDuration esté listo?

¡Cualquier ayuda es apreciada!

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda