Видео играет хорошо с обещаниями. Вот рутина, которая приостанавливается в определенный момент времени и возвращает обещание, которое выполняется, когда это происходит (или видео приостанавливается по какой-то другой причине или заканчивается).
function pause_at (video, t) {
var promise=new Promise();
function reached() {
promise.fulfill (video.currentTime);
video.removeEventListener ("timeupdate", timeupdate);
video.removeEventListener ("pause", reached);
}
function timeupdate() {
if (video.currentTime >= t) {
reached();
video.pause();
}
}
video.addEventListener ("timeupdate", timeupdate);
video.addEventListener ("pause", reached);
return promise;
}
Использование:
pause_at (video,60).then (function() {alert ("At 60-second mark!");});
video.play();
Обратите внимание, что видео окончание также считаются видео «пауза» (с событием паузы обожженным), так что обещание будет выполнять также, когда видео заканчивается.
Тонкая настройка, как вы хотите работать с любимой библиотекой обещаний. Вам нужно будет исправить это, если вам нравится запускать видео назад (отрицательное воспроизведениеRate). :-)
Что вы пытаетесь сделать? Ваш код ничего не показывает о добавлении слушателя. Когда вы хотите, чтобы слушатель работал? Когда начинается видео? Когда это закончится? Есть события, которые вы можете прослушать, например, 'video.addEventListener (« закончился », someFunction);'. Если вы хотите прослушать каждый тик, вы можете использовать событие 'timeupdate' – Ian
Вот пример чего-то, что вам может понадобиться: http://jsfiddle.net/XK4NW/ – Ian
Ничего страшного, это именно то, что мне нужно. Спасибо, вы хотите опубликовать его в качестве ответа или я должен удалить этот вопрос? –