【问题标题】:HTML5 Video currentTime not updating in ChromeHTML5 视频当前时间未在 Chrome 中更新
【发布时间】:2019-10-21 21:05:31
【问题描述】:

在 Chrome 中,出于某种原因在页面中,如果我为 <video id="player" preload="metadata" playsinline> 标签设置了 currentTime,它不会更新。例如,如果我设置document.getElementById('player').currentTime = 5,它不会更新。它从 0 开始播放。

我在另一个页面中添加了相同的代码,但它在 Chrome 中运行良好,没有任何问题。在 Firefox 中,这两个页面都运行良好。

仅供参考,我正在尝试使用自定义视频控件查找视频并设置当前时间。只有在这种情况下,它才能工作。

我不知道发生了什么。请给点建议。

【问题讨论】:

  • 我的猜测是,当您设置视频元素的currentTime 时,它可能还没有准备好

标签: javascript html google-chrome html5-video


【解决方案1】:

您应该加载您的视频,并且仅在设置 .currentTime 之后。

试试这个:

let player = document.getElementById('player');
preload(player, 5);
function preload(elem, time){
 elem.setAttribute('preload', 'auto');
 elem.addEventListener('canplaythrough', setCurrentTime);
 function setCurrentTime(){
 elem.currentTime  = time;
 elem.setAttribute('preload','none');
 elem.removeEventListener('canplaythrough', setCurrentTime);
 }
}

【讨论】:

  • 我正在尝试使用自定义视频控件搜索视频并设置当前时间。只有在这种情况下,它才能工作。为了更好地理解,我对这篇文章进行了一些编辑。抱歉没有详细说明帖子
猜你喜欢
  • 1970-01-01
  • 2013-08-18
  • 2011-09-16
  • 1970-01-01
  • 1970-01-01
  • 2014-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多