Событие HTML5 video timeupdate не срабатывает

У меня есть элемент на моей странице:

<video id="myVideo">
    <source src="vid.mp4" type="video/mp4" />
    <source src="vid.ogg" type="video/ogg" />
</video>

В моем JS он гласит:

var v = $('#myVideo')[0];
v.addEventListener('timeupdate',function(){
   alert('I changed');
},false);

Теперь я запущу свою консоль и type:

$('#myVideo')[0].currentTime = 2;

Отображаемый кадр изменится, но событие не сработает. Согласно спецификациям timeupdateдолжно срабатывать, когда currentTime было изменено, поэтому я не думаю, что использую неправильное событие? Все остальные события, которые я использую (например, playи end), работают нормально.

Есть много похожих вопросов, но все они кажутся устаревшими ошибками? Это еще одна ошибка (я тестировал в Chrome 17 и FF10) или что-то изменилось в структуре событий? Или я что-то совсем другое упускаю?

РЕДАКТИРОВАТЬ: Я только что заметил, что эта проблема возникает только тогда, когда видео еще не воспроизведено. Итак, когда я это сделаю:

$('#myVideo')[0].play();
$('#myVideo')[0].pause();
$('#myVideo')[0].currentTime = 2;

Событие сработает, как и должно быть.

6
задан m90 19 March 2012 в 12:57
поделиться