В зависимости от воспроизводимого типа мультимедиа и других событий, связанных с экземпляром проигрывателя JW, событие onTime запускается несколько раз в секунду и сообщается с большим числом знаков после запятой.
Поэтому очень маловероятно, что «позиция» когда-либо будет ровно 3 (это то, что вы фактически говорите со следующим: '==' & '===').
Было бы более надежным использовать '>=':
playerInstance.on('time', function(x) {
if (x.position >= 3){
playerInstance.pause();
}
});
Однако это означает, что игрок не сможет играть более 3 секунд, поэтому в зависимости от ваших требований вам также может потребоваться включить дополнительную логику для удовлетворения следующего:
- продолжение воспроизведения после точки паузы
- что делать, если пользователь ищет более 3 секунд
- поиск назад, а затем достижение точки паузы во второй раз
- и т.д...
Вероятно, лучшим решением было бы преобразовать «позицию» в целочисленное значение и выполнить прямое сравнение. Это означает, что вам не понадобится логика для обработки прохождения точки паузы. Однако вам потребуется логика, чтобы убедиться, что он был приостановлен только один раз в точке паузы. Этому способствует следующее:
playerInstance.on('time', function(x){
if(parseInt(x.position,10)===3){
if(!playerInstance["pauseOnce"]){
playerInstance["pauseOnce"]=true;
playerInstance.pause();
}
}else{
playerInstance["pauseOnce"]=false;
}
});
person
jherrieven
schedule
15.12.2015