簡體   English   中英

如何在 wavesurfer.js 中獲取最新的 currentTime?

[英]How can i get the newest currentTime in wavesurfer.js?

我有問題。 此代碼將單擊事件添加到波條。

wavesurfer.drawer.on("click", () => {console.log(wavesurfer.getCurrentTime())})

當我點擊波浪條時,我得到了光標所在的時間! 例如,如果當前時間為 0,並且我單擊波形欄,而我單擊波形欄的位置是 3:03,我看到日志為 0! 但我想得到最新的時間。 在此示例中,最晚時間是 3:03,但 0 將被記錄為當前時間。 另一個例子是當當前時間是 3:00 時,我將光標移動到時間是 4:04 的地方,3:00 將被記錄,我不想要它。 我想要我移動光標的時間。 我想要示例 1 中的 3:03 和示例 2 中的 4:04。我該如何解決這個問題? 感謝您的幫助。

我解決了我的問題。 我想知道我點擊的時間。 事件處理程序在時間更新之前運行。 在這種情況下,我應該有一個延遲來獲得我點擊的時間。 所以我應該使用setTimeout方法。

wavesurfer.drawer.on("click", (e) => {
  setTimeout(() => {
    dispatch(musicSlice.updateMusicTime(wavesurfer.getCurrentTime()));
  }, 0);
});

如果你想知道為什么我給 setTimeout 0 秒的延遲,請研究一下call stackweb apisasynchronous in js ,你就會明白為什么我給setTimeout方法延遲 0 秒。 我希望它可以幫助你。 祝你好運。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM