В настоящее время работает над страницей, содержащей видео, которое необходимо приостановить в определенных точках (например, в главах). Так что я сделал функцию, которая будет остановить видео, когда она попадает в следующий «маркер времени», который выглядит следующим образом:Функция Javascript не срабатывает при просмотре видео
function vidPause(nextMarker){
var timeMarker = nextMarker;
if(videoPlayer.currentTime >= timeMarker) {
videoPlayer.pause();
videoPlayer.removeEventListener('timeupdate', vidPause());
}
};
И я пытаюсь стрелять это так:
videoPlayer.addEventListener('timeupdate', vidPause(nextMarker));
Но это только кажется, что огонь, когда видео загружается. Ничего не происходит, когда воспроизводится видео (проверено с помощью console.log(videoPlayer.currentTime);
внутри функции vidPause).
Примечание: Мне нужно, чтобы функция вызывалась таким образом, чтобы я мог удалить прослушиватель событий, когда он попадает в маркер времени, таким образом он не остановится, когда пользователь захочет воспроизвести видео с этой точки.
Заранее благодарим за любые предложения!
Спасибо за ответ. Я попробовал, и он не работает, он приостанавливает видео через 1 секунду или около того, даже если nextMarker установлен на другое значение. Кажется, он не удаляет прослушиватель событий. Но я не понимаю цели timeStamp var, не могли бы вы объяснить это? Кроме того, область nextMarker является глобальной, любая функция может получить к ней доступ, поскольку она определена в верхней части моего общего сценария. – EatTheFood
ОК, сделал пару изменений - 1. event.timeStamp - это не правильное свойство, чтобы получить текущее время воспроизведения видео. 2. Пробовал преобразовать определение видеообъявления, чтобы убедиться, что оно определено при создании замыкания для vidPause. Это может быть или не быть причиной проблемы, но это, вероятно, другой вопрос tbh –