2013-05-13 7 views
6

Ho notato una piccola incoerenza che spero di verificare sia come una stranezza di HTML5, o qualcosa di specifico su Video.js.video.js currentTime() non corretto fino all'attivazione dell'evento timeupdate

Sembra che se si chiama la funzione Video.js' currentTime() al tempo stesso un nuovo tempo, eventuali ulteriori chiamate a currentTime() (per ottenere l'ora corrente) non restituirà l'ora corretta (tornerà la volta precedente), fino a quando l'incendio dell'evento timeupdate. Dopo l'evento timeupdate, currentTime() restituirà l'ora corretta.

Per esempio, supponendo che il video non ha iniziato a giocare ancora, ma Video.js ha caricato, insieme con tutti i video meta ecc:

videoPlayer.addEvent('timeupdate', function() { 
    console.log('Event callback: ' + player.currentTime); 
}); 
console.log('Original time: ' + player.currentTime); 
player.currentTime(100);   
console.log('New time: ' + player.currentTime); 

L'uscita mi aspettavo sarebbe simile:

Original time: 0 
New time: 100 
Event callback: 100 

Tuttavia quello che ho riceve è:

Original time: 0 
New time: 0 
Event callback: 100 

Tutta la comprensione sarebbe fantastico!

Modifica: Posso riprodurlo in Chrome e Safari su OSX, ma non Firefox su OSX (tutto con HTML5). Posso anche riprodurlo su IE8 usando il player Flash e IE9 usando il player HTML5.

risposta

2

Ho visto un comportamento simile su molti altri lettori html5/flash.

Sono sempre stato sotto l'ipotesi che anche dopo aver cercato tramite currentTime(100);, l'indicatore di riproduzione non verrà aggiornato fino al prossimo evento timeupdate.

+0

Questo sembra essere il caso attraverso la mia sperimentazione. Saluti! –