Estoy tratando de hacer una función de transmisión en vivo, tengo una variedad de programas (videos), cada video tiene fecha de inicio y fecha de finalización. Si estoy ejecutando un video y la hora actual es igual a la hora de finalización del video, debería ejecutar la función principal (que calcula la hora y ejecuta el nuevo video).
const programs = [ { video: "URL", startDate: 1644405993, endDate: 1644406032 }, { video: "URL", startDate: 1644405993, endDate: 1644406032 }, { video: "URL", startDate: 1644405993, endDate: 1644406032 }, { video: "URL", startDate: 1644405993, endDate: 1644406032 } ];¿Puedo agregar algún observador, por ejemplo, para ejecutar la función cuando la hora actual sea igual a la hora de finalización del programa actual o puedo hacerlo de otra manera?
La función principal que debe ejecutarse de nuevo:
const runningVideo = (newPrograms) => { const curTime = Math.floor(new Date().getTime() / 1000); const currentProgram = newPrograms.filter( p => p.startDate < curTime && p.endDate > curTime ); setPlayerDetails(currentProgram.length ? currentProgram[0].videoPath : advertisement) };**NOTA: ** Es una transmisión en vivo, por lo que cada programa depende de la hora de inicio y finalización, quiero decir que el video no debe finalizar para comenzar el siguiente video, por lo que no puedo usar onEndedVideo, por ejemplo.