muszę element <video>
na mojej stronie:HTML5 wydarzenie timeupdate wideo nie wypalanie
<video id="myVideo">
<source src="vid.mp4" type="video/mp4" />
<source src="vid.ogg" type="video/ogg" />
</video>
W moim JS to brzmi:
var v = $('#myVideo')[0];
v.addEventListener('timeupdate',function(){
alert('I changed');
},false);
Teraz będę odpalić konsolę i wpisz:
$('#myVideo')[0].currentTime = 2;
Wyświetlana klatka zmieni się, ale wydarzenie się nie uruchomi. Według specyfikacji timeupdate
powinien wystrzelić kiedy currentTime was changed
, więc nie sądzę, że używam niewłaściwego zdarzenia? Wszystkie inne zdarzenia, z których korzystam (tzn. play
& ended
) działają poprawnie.
Istnieje wiele podobnych pytań, ale wszystkie wydają się być przestarzałymi błędami? Czy to kolejny błąd (testowałem w Chrome 17 i FF10), czy coś zmieniło się w strukturze wydarzenia? Czy może brakuje mi czegoś zupełnie innego?
EDYCJA: Po prostu zauważyłem, że ten problem wystąpi tylko wtedy, gdy wideo jeszcze nie było odtwarzane. Kiedy więc to zrobię:
$('#myVideo')[0].play();
$('#myVideo')[0].pause();
$('#myVideo')[0].currentTime = 2;
Impreza zostanie uruchomiona dokładnie tak, jak powinna.
Nie można więc ustalić, czy głowica wideo została przeniesiona przed pierwszym uruchomieniem wideo? – m90
może rozmawiamy na krzyżu, ale jak możesz szukać filmu, który nie został załadowany (lub jest ładowany)? czy kontrolki są wyświetlane przez cały czas? czy macie na to krótki przykład ?! .. może ta strona również pomaga: http: //www.w3.org/2010/05/video/mediaevents.html listę wszystkich wydarzeń w żywym przykładzie.poszukiwany może być twoim atrybutem ?! – longilong
To może być trochę skomplikowane, ale zobacz: http://goo.gl/uJyod - możesz chcieć odkryć element '