我希望在点击特定按钮时捕获HTML5视频的当前运行时间。 这是我的代码
var vid = document.getElementById("video1");
$('#cap-cue').click(function(){
var curtime = vid.currentTime;
alert(curtime);
});
这适用于大多数浏览器,但不适用于Chrome。
答案 0 :(得分:4)
更新, 10/7/15:我发现Chrome实际上并没有使用 currentTime ,而是采用了处理video.load的方式()。
Here is a bug report on the issue.此时已超过2.5岁,并且不断被推进到其他报告中,但这是一个众所周知的错误。如果他们还没有解决这个问题,那么我并不相信它的优先级列表很高。
此错误已合并到问题#31014中,该问题已于8月份标记为已修复,但似乎人们(包括我自己)仍然存在此问题。
这似乎源于这样一个事实:如果您尝试向同一网址发出多个请求以检索任何媒体元素(音频或视频),那么网络连接似乎会在Chrome中挂起。我测试了这一点,果然,这正是我案件中发生的事情。
人们已经在上面的那个帖子中报告了几个变通方法,但我无法让它们中的任何一个起作用。
currentTime在Chrome中无法正常运行。我今天用videojs对此进行了测试,因为这是唯一一个抛出问题的浏览器,然后切换到标准的HTML5视频播放器,并遇到了同样的问题。
在FF和Edge中正常工作,但在Chrome中不起作用。
更奇怪的是,即使没有加载视频,也不会抛出错误。至少对于videojs,它会引发一个关于无法加载的错误。
I filed a bug report with videojs today,这与他们的播放器有关,但经过更多的考虑后,它似乎是一个Chrome问题。希望它至少会为标准HTML5播放器抛出错误。
答案 1 :(得分:2)
确保您准备好文档中的视频元素:
$(function() {
var vid = document.getElementById("vid");
});
$('#getTime').on('click', function() {
var currentTime = vid.currentTime;
$('#currentTime').html(currentTime);
});
使用Chrome,Firefox和IE10在Windows上进行测试。
答案 2 :(得分:2)
问题(至少关于Chrome)可能在服务器端。
将Header set Accept-Ranges bytes
放入.htaccess
(请参阅this answer)