Tengo un problema. Este código agrega un evento de clic a la barra de ondas.
wavesurfer.drawer.on("click", () => {console.log(wavesurfer.getCurrentTime())})
Cuando hago clic en la barra de ondas, obtengo la hora en la que estaba el cursor. Por ejemplo, si la hora actual es 0 y hago clic en la barra de ondas y donde hice clic en la barra de ondas es 3:03, ¡veo que el registro es 0! Pero quiero obtener la última hora. En este ejemplo, la última hora es 3:03 pero 0 se registrará como la hora actual. otro ejemplo es cuando la hora actual es las 3:00, y muevo el cursor donde la hora es 4:04, se registrarán las 3:00 y no lo quiero. Quiero la hora de donde moví el cursor. Quiero 3:03 en el ejemplo 1 y 4:04 en el ejemplo 2. ¿Cómo puedo resolver este problema? Gracias por ayudar.
arreglé mi problema. Quería obtener la hora en la que hice clic. el controlador de eventos se ejecuta antes de que se actualice la hora. y en esta situación, debería tener un retraso para obtener la hora en la que hice clic. así que debería usar el método setTimeout .
wavesurfer.drawer.on("click", (e) => { setTimeout(() => { dispatch(musicSlice.updateMusicTime(wavesurfer.getCurrentTime())); }, 0); }); Si desea saber por qué le di a setTimeout 0 segundos de retraso, investigue sobre call stack , web apis y asynchronous in js y comprenderá por qué le di 0 segundos de retraso al método setTimeout . Espero que te ayude. buena suerte.