【问题标题】:ontimeupdate with YouTube API使用 YouTube API 的 ontimeupdate
【发布时间】:2012-04-12 10:48:30
【问题描述】:

HTML5 视频支持ontimeupdate 事件; YouTube API 中是否有未在文档中列出的等价物,或者只是我不知道?我试过 setInterval 方法每隔 n 毫秒检查一次,但是我必须检查视频是否正在播放等。有人处理过这个问题吗?

【问题讨论】:

  • 有一个问题可能会给你答案:stackoverflow.com/questions/42754097/… 基本上因为它是一个 Iframe API 不可能像今天这样访问 HTML5 事件...另一方面有一些提供包装器的库或小型项目,让您可以将事件处理程序添加到 ontimeupdate github.com/ginpei/html5-youtube.js
  • @SirPeople 如果您可以肯定地说 YouTube iframe API 中没有等效事件,请将其发布为答案。谢谢。
  • @Brad 完成!我一直在等待 OP 也对他试图实现的目标提供一些反馈,看看是否有更合适的解决方法。

标签: javascript youtube youtube-api


【解决方案1】:

根据the documentation 没有这样的事件(我想你也知道这一点)。 Other answers 也说明了这一点,据我在代码示例中看到的,没有直接的等价物。即使在某些code examples (check the getting started code) 中,他们也依赖 setTimeout 在视频开始 6 秒后执行某些操作。

有些人找到了解决方法,例如在this answer,他们创建了一个计时器,以便他们实际上可以每 X 毫秒触发一次时间检查:

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

这样你就可以真正模拟事件时间更新,你只需要清除状态变化的超时时间(如果它停止了你不想继续调用该函数)。

有些人创建了YouTube Player API wrapper like HTML5 video API。在那一个中​​,您实际上是在访问嵌入的 Youtube 视频中的 HTML5 视频 API。

我不确定 Youtube API 的路线图,但可能他们会转向与当前 HTML5 视频兼容的更通用和标准的 api,但在那之前我希望我的回答可以帮助你

【讨论】:

  • 这基本上就是我最终要做的,我想。
猜你喜欢
  • 2015-07-04
  • 2019-03-26
  • 1970-01-01
  • 2013-11-12
  • 2014-01-26
  • 1970-01-01
  • 2017-03-04
  • 2016-03-19
  • 2011-09-17
相关资源
最近更新 更多