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

145
Vistas
¿Cómo activar una función al comienzo de un video y una función diferente cuando el usuario hace una pausa y presiona reproducir para continuar viendo el video?

Actualmente, tengo un reproductor de video.js con React. Mi objetivo es activar una función cuando el usuario comienza a reproducir el video y activar una función separada cuando el usuario vuelve a reproducir el video después de pausar el video (llamemos a esto el evento "continuar"). ¿Cómo puedo lograr esto sin activar la función incorrecta al inicio y continuar?

He examinado varios eventos de medios HTML diferentes, como 'reproducir' y 'reproducir' , sin embargo, la función "continuar" aún se activa al inicio.

Esto es lo que tengo:

 const VideoPlayer = ({ handleOnPlayContinue, handleOnStart }) => { const [hasStarted, setHasStarted] = useState(false); useEffect(() => { videoJSPlayer.on('play'), () => { setHasStarted(true); }; videoJSPlayer.on('playing'), () => { handleOnPlayContinue(); }; }, [videoJSPlayer, handleOnPlayContinue]); useEffect(() => { if (hasStarted) { handleOnStart(); } }, [hasStarted, handleOnStart]); }

¿Debería alternar otro estado booleano en 'pausa' y usar ese indicador booleano para activar mi función de continuación? Pensé en configurar otro estado para administrar cuando el usuario continúa con el video después de hacer una pausa, pero quería saber si hay otro evento de medios HTML que pueda aprovechar.

¡Gracias por cualquier consejo y respuesta que pueda tener!

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

No creo que haya un evento de medios HTML relevante; tendrá que administrarlo usted mismo con el estado y solo dentro del evento de play . Vea si lo siguiente funciona para lo que está tratando de lograr (no he podido probarlo). Tenga en cuenta que los cambios de estado en useEffect no se actualizan sincrónicamente, y hasStarted debe estar en la matriz de dependencia; de lo contrario, el evento hará referencia a variables de estado obsoletas. También queremos limpiar los detectores de eventos entre las llamadas useEffect .

 const VideoPlayer = ({ handleOnPlayContinue, handleOnStart }) => { const [hasStarted, setHasStarted] = useState(false); useEffect(() => { videoJSPlayer.on("play", () => { if (!hasStarted) { handleOnStart(); setHasStarted(true); } else { handleOnPlayContinue(); } }); return () => { videoJSPlayer.off("play"); }; }, [hasStarted, handleOnPlayContinue, handleOnStart, videoJSPlayer]); };
about 4 years ago · Juan Pablo Isaza Denunciar
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