2010-11-28 26 views
1

私の以前の質問との関連で、Find line of text in relation to a video currentTime and highlight it using javascript? - ビデオイベントリスナーを設定して、video.currentTimeでnow変数の値を設定しようとしました。これは私が現在持っているコードです(エラーを返さずに、実際には動作しません)。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 = ""; 
} 
}} 
} 

私はトラン機能が動作していることは知っていますが、動作していないのはnow変数を変更することです。私もビデオの現在の時刻を印刷しようとしましたが、どちらもうまくいきませんでしたので、私はeventListenerを正しく行っていないと思いますか? ありがとう

答えて

0

timeupdateが呼び出されると計算されます.tranが呼び出されるときではなくなります。だからあなたがトランを呼び出すなら、今はタイムアップの日付が呼ばれた時になるでしょう。

、今変数正確を取得するには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

+0

どうやってさまざまな機能を呼びますか?リスナーを設定する関数が1つ必要です。リスナーを使用しているときは、その時間を捉える必要があります。 – wajiw

+0

私は時刻を取得すると仮定リスナーを設定するtimeupdate関数を持っていますが、それは実際に値を渡すためにはまだ持っています。 – Mim

関連する問題