如何在javascript中使用API​​捕获Youtube播放器的拖动/跳过/转发事件

时间:2015-02-06 05:46:27

标签: javascript jquery youtube youtube-api youtube-javascript-api

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

这来自文档:

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

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

-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是怎么做到的?

1 个答案:

答案 0 :(得分:1)

看来YouTube确实没有这样的事件监听器......或者至少我找不到一个。 因此,我使用setInterval连续调用getCurrentTime()API调用。如果有更好的方法,请告诉我。 THX

function onPlayerStateChange(event) {

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