如何在 javascript 中使用 API 捕捉 Youtube 播放器的 dragging/skipping/forwarding 事件

How to catch Youtube player's dragging/skipping/forwarding event with API in javascript

我正在查看 onStateChange 的文档,但即使用户将播放器计时器向左或向右拖动,我也没有找到任何内容。事实上,当我这样做时,onStateChange 没有捕捉到任何东西。

这是来自文档:

https://developers.google.com/youtube/iframe_api_reference

只要玩家的状态发生变化,就会触发此事件。 API 传递给您的事件侦听器函数的事件对象的数据 属性 将指定一个与新玩家状态相对应的整数。可能的值为:

-1 (unstarted)
0 (ended)
1 (playing)
2 (paused)
3 (buffering)f
5 (video cued).

当播放器首次加载视频时,它会广播未开始 (-1) 事件。当视频被提示并准备好播放时,播放器将播放视频提示 (5) 事件。在您的代码中,您可以指定整数值,也可以使用以下命名空间变量之一:

YT.PlayerState.ENDED
YT.PlayerState.PLAYING
YT.PlayerState.PAUSED
YT.PlayerState.BUFFERING
YT.PlayerState.CUED

但是当您尝试分享视频时,Youtube 会以某种方式自行完成!转到 youtube 视频,然后单击共享按钮,然后在尝试拖动播放器的计时器时查看“开始于”文本字段。文本字段随播放器的 getCurrentTime 更新。 Youtube 是怎么做到的?

YouTube 似乎没有这样的事件侦听器..或者至少我找不到。 因此,我使用 setInterval 来连续调用 getCurrentTime() API 调用。如果有更好的方法,请告诉我。谢谢

function onPlayerStateChange(event) {

    timeInterval = setInterval(function() { 
        setCurntTime( txtBox, event.target.getCurrentTime() ) 
         }, 1500);
}