Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

158
Views
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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!