2010-11-28 85 views
1

关于我早先的问题 - Find line of text in relation to a video currentTime and highlight it using javascript? - 我一直在试图设置视频eventlistener来设置now.currentTime变量的值。这是我目前的代码(没有它返回错误,但实际上并没有工作)。html5视频事件监听器没有得到当前时间

function transcript(){ 
var now; 
var lines = document.getElementById("transcript").getElementsByTagName("span"); 

function timeupdate(){ 
    var video = document.getElementsByTagName('video')[0]; 
    video.addEventListener('currentTime', tran, false); 
now = video.currentTime; 
} 

function tran(){ 
for (var i = 0, l = lines.length; i < l; i++) { 
if (now >= +lines[i].getAttribute("data-start") && 
now <= +lines[i].getAttribute("data-end")) { 
lines[i].className = "current"; 
} else { 
lines[i].className = ""; 
} 
}} 
} 

我知道tran函数可以工作,但不工作的是改变now变量。我也尝试打印视频的当前时间,但这也没有奏效,所以我想我没有正确地执行eventListener? 谢谢

回答

0

现在越来越计算timeupdate被调用时,而不是调用tran时。所以如果你打电话给tran,那么现在就是在timeupdate被调用的时候。

为了获得准确的,现在变,抓住当前时间在TRAN功能:

function tran(){ 
var video = document.getElementsByTagName('video')[0]; 
now = video.currentTime; 
for (var i = 0, l = lines.length; i < l; i++) { 
if (now >= +lines[i].getAttribute("data-start") && 
now <= +lines[i].getAttribute("data-end")) { 
lines[i].className = "current"; 
} else { 
lines[i].className = ""; 
} 
}} 
+0

我明白你说关于它在错误的功能是什么,但后来我不得不对timeupdate调用代替?因为这仍然没有联系起来。 – Mim 2010-11-28 23:45:36