使用YouTube API进行ontimeupdate

Ian*_*ter 10 javascript youtube youtube-api

HTML5视频支持该ontimeupdate活动; YouTube API中是否存在未在文档中列出的内容,或者只是我不知道的内容?我已经尝试了一个setInterval方法来检查每n毫秒,但是我必须检查视频是否正在播放等等.有没有人处理过这个问题?

Sir*_*ple 6

根据文档,没有这样的事件(我想你也知道这一点).其他答案也说明了这一点,就我所看到的代码示例而言,没有直接的等价物.即使在一些代码示例中(检查入门代码),它们依赖于setTimeout,以便在视频启动后6秒执行某些操作.

有些人找到了解决方法,例如在这个答案中,他们创建了一个计时器,这样他们实际上可以每隔X毫秒检查一次:

function onPlayerReady() {
  function updateTime() {
    var oldTime = videotime;
    if(player && player.getCurrentTime) {
      videotime = player.getCurrentTime();
    }
    if(videotime !== oldTime) {
      onProgress(videotime);
    }
  }
  timeupdater = setInterval(updateTime, 100);
}
Run Code Online (Sandbox Code Playgroud)

通过这种方式,您实际上可以模拟事件timeupdate,您只需要清除状态更改的超时(如果它已停止,您不想连续调用该函数).

有些人创建了像HTML5视频API这样YouTube播放器API包装器.在那个实际上,您实际上是在嵌入式Youtube视频中访问HTML5视频API.

我不确定Youtube API的路线图,但可能他们将转向更符合当前HTML5视频的通用和标准API,但在此之前我希望我的回答可以帮助你