【问题标题】:JS currentTime for html video tag is not working on chrome用于 html 视频标签的 JS currentTime 在 chrome 上不起作用
【发布时间】:2015-01-15 13:28:52
【问题描述】:

我想在单击特定按钮时捕获 HTML5 视频的当前运行时间。 这是我的代码

var vid = document.getElementById("video1");    
$('#cap-cue').click(function(){
    var curtime = vid.currentTime;
    alert(curtime);
});

这适用于大多数浏览器,但不适用于 chrome。

【问题讨论】:

  • 当这不起作用时,您是否在浏览器控制台中收到任何错误?
  • 如果你提供一个jsFiddle例子会更容易。
  • 没有理由不这样做。尝试记录curtimevid。你在准备好文件时这样做了吗?

标签: javascript jquery html google-chrome html5-video


【解决方案1】:

问题(至少关于 Chrome)可能出在服务器端。 将Header set Accept-Ranges bytes 放入您的.htaccess(参见this answer

【讨论】:

  • 这个解决方案是唯一对我有用的方法,谢谢!
【解决方案2】:

更新(2015 年 10 月):我发现这实际上并不是 Chrome 对 currentTime 的使用,而是它处理 video.load() 的方式。

Here is a bug report on the issue. 在这一点上已经超过 2.5 年,并且不断被推回到其他报告中,但这是一个众所周知的错误。如果他们此时还没有修复它,那么我不相信它在他们的优先级列表中排名靠前。

此错误已合并到问题 #31014,该问题早在 15 年 8 月就被标记为已修复,但似乎人们(包括我自己)仍然遇到此问题。

这似乎源于这样一个事实,即如果您尝试向同一个 URL 发出多个请求以检索任何媒体元素(音频或视频),则网络连接似乎在 Chrome 中挂起。我对此进行了测试,果然,这正是我的情况。

人们在上面的那个帖子中报告了几种解决方法,但我无法让它们中的任何一个起作用。


currentTime 在 Chrome 中无法正常工作。我今天用 videojs 测试了这个,因为这是唯一一个抛出问题的浏览器,然后切换到标准的 HTML5 视频播放器,并遇到了同样的问题。

在 FF 和 Edge 中运行良好,但在 Chrome 中无法运行。

更奇怪的是,即使不加载视频也不会引发错误。至少对于 videojs,它会引发无法加载的错误。

I filed a bug report with videojs today,以为是播放器的问题,但仔细考虑后,似乎是 Chrome 的问题。希望它至少会为标准 HTML5 播放器抛出错误。

【讨论】:

  • 解决方案 here 为我工作。
  • Chrome 中仍未修复。 bugs.chromium.org/p/chromium/issues/detail?id=1018533 显然它只发生在某些视频中,因此开发人员继续关闭票证。这种情况已经持续了大约 10 年。 ☹
  • 前几天我看到这个弹出窗口,想知道“它还处于活动状态吗?”果然如此。
【解决方案3】:

确保您准备好文档上的视频元素:

$(function() {
    var vid = document.getElementById("vid");  
});

$('#getTime').on('click', function() {
    var currentTime = vid.currentTime;
    $('#currentTime').html(currentTime);
});

JSFiddle demo

在 Windows 上使用 Chrome、Firefox 和 IE10 测试。

【讨论】:

  • 我认为这与准备好文档无关。我在播放视频后尝试过此操作,然后更改当前时间并遇到相同的问题(如下)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-28
  • 2015-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-12
  • 2017-08-10
相关资源
最近更新 更多