2016-12-19 3 views
1

У меня есть видео (introVid), и я бы хотел, чтобы это произошло, когда оно достигло отметки в 1 секунду, оно должно приостановиться на 2 секунды, а затем снова воспроизвести. Вот код, но он не будет воспроизводиться через 2 секунды. Он просто сохраняет приостановленное состояние.Как воспроизвести видео после паузы (в течение нескольких секунд) в HTML5?

introVid.addEventListener('timeupdate', function(){ 

    if(this.currentTime > 1) { 
     this.pause(); 
     setTimeout(function(){ 
      this.play();  
     }, 2000); 
    } 
}); 

Каков правильный путь?

+0

вы можете не просто повернуть слушателя прочь после того, как он сработал, так что, когда вы играете снова не вызвать? или вы можете установить флаг или указать на новую функцию, если вам все еще нужен активный слушатель timeupdate – Offbeatmammal

ответ

0

Добавить this.load(); над this.play();, чтобы начать видео с самого начала.

Прямо сейчас ваш слушатель запускается немедленно, когда видео возобновляется (таким образом, приостанавливая видео снова), поскольку позиция видео не сбрасывается.

Обновлены JS:

introVid.addEventListener('timeupdate', function(){ 
    if(this.currentTime > 1) { 
     this.pause(); 
     setTimeout(function(){ 
      this.load();  
      this.play();  
     }, 2000); 
    } 
}); 
+0

Что делать, если я хочу начать с того места, где я остановился? Как продолжить с 1 года? – catandmouse

+0

@catandmouse Вы хотите, чтобы вы играли через видео с интервалом в 1 секунду с 2-секундными паузами между секундами? –

+0

Видео, которое у меня есть, всего 2 секунды. Я просто хочу, чтобы экран с отметкой в ​​1 сек задерживался на некоторое время (2 секунды), прежде чем продолжить. Так что, похоже, видео занимает 4 секунды, а не всего 2 секунды. – catandmouse