прокрутка, когда определенное время достигает в видео проигрывателе - PullRequest
1 голос
/ 27 марта 2012

Я разрабатываю страницу, на которой мне нужно показать видео с соответствующим pdf. Я использовал проекты pdf.js и video.js для чтения PDF и видео соответственно. Они оба реализованы в разных div. это ссылка на скриншот моей страницы здесь . Мне нужно реализовать функцию, которая проверяет текущее время видео и изменяет положение pdf div в зависимости от времени ниже приведен код, который я реализовал, но он вообще не работает

//function to perform on every timeupdate
var myFunc =function(){
    var myPlayer = this;
    var whereYouAt = myPlayer.currentTime();
//working of function
switch(whereYouAt)
{
    case 30: bookmarkscroll('pageContainer2');
         break;
    case 60: bookmarkscroll('pageContainer3');
         break;
    case 90: bookmarkscroll('pageContainer4');
         break;
    case 120: bookmarkscroll('pageContainer5');
          break;
    case 150: bookmarkscroll('pageContainer6');
          break;
    case 180: bookmarkscroll('pageContainer7');
          break;

}

};
myPlayer.addEvent("timeupdate",myFunc);

Ответы [ 3 ]

5 голосов
/ 27 марта 2012

Поскольку событие timeupdate не заботится о хорошо выглядящих десятичных числах, оно может запускаться в любой момент времени и даже с различными интервалами в зависимости от вашего браузера (поэтому возвращает что-то вроде12.56661) вам следует изменить обработку значения, которое возвращает currentTime (которое также является свойством, а не методом - поэтому нет () - см. этот документ ), возвращаемый.

Примерно так должно работать:

//select video player only once
var myPlayer = document.getElementById('videoPlayer');

//function to perform on every timeupdate
var myFunc =function(){

var whereYouAt = myPlayer.currentTime; 

if (whereYouAt > 30 && whereYouAt <= 60){
   bookmarkscroll('pageContainer2');
} else if (whereYouAt > 60 && whereYouAt <= 90){
   bookmarkscroll('pageContainer3');
} else if .... //and so on

}

myPlayer.addEventListener('timeupdate',myFunc,false);

Еще одна вещь, которую стоит отметить, это то, что метод для подключения прослушивателей событий называется addEventListener а не addEvent

0 голосов
/ 05 января 2017

Используйте Math.floor на вашем currentTime примерно так:

var whereYouAt = Math.floor(myPlayer.currentTime);

Это вернет integer, и ваш switch оператор будет работать.

0 голосов
/ 27 марта 2012

это потому, что timeupdate обычно не 1,2,3,4, это как 1.02302350,1.12412312.так что вы меняете дело, никогда не получите нужное время.попробуйте использовать интервалы типа

this.currentPageContainer; //save your current container


if( whereYouAt > 30 && whereYouAt < 60 ){
  var scrollTo = 'pageContainer2';
  if( this.currentPageContainer == scrollTo ) return;  //break, if already scrolled

  bookmarkscroll('pageContainer2');
  this.currentPageContainer = scrollTo;
}
else if( whereYouAt > 60 && whereYouAt < 90  ) ...

, не знаю, действительно ли вам нужен перерыв, потому что я не знаю вашу функцию прокрутки.лучший л

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...