Нажмите на индикатор и узнайте таймер видео до (и после) - PullRequest
0 голосов
/ 21 июня 2019

Я использую Videojs, и мне нужно знать, когда временная шкала используется для навигации.Особенно мне нужно «текущее время» игрока, когда я нажимаю на панель, а также таймер, на котором она была нажата (но я объясню это проще)

Используя myPlayer.currentTime () Я могу получить таймер видео, поэтому я с помощью EventListener, например, «onclick» или «onmousedown», хотя я могу получить таймер видео по клику.Но он дает мне таймер только после.

Это не легко объяснить, так что это пример: прогрессбар Таймер в настоящее время 0:01, и я нажимаю в 0:14 Какполучить «0:01» от игрока, какое событие

Это мое событие, но я получаю новый таймер

myPlayer.controlBar.progressControl.on('mouseup', function (event) {
            console.log(myPlayer.currentTime());
});

Я даже пробую другое событие, на других элементах, таких как mousedownкоторый также дает мне таймер после, и не срабатывает, когда я нажимаю непосредственно на ползунок

myPlayer.controlBar.progressControl.on('mousedown', function (event) {
            console.log(myPlayer.currentTime());
});

Я пробовал много вещей, но ни одна из них не работает, у вас есть какие-нибудь идеи?

1 Ответ

0 голосов
/ 21 июня 2019

Библиотека VideoJS предлагает изящное маленькое событие, которое может быть полезно для вашего варианта использования: timeupdate .

Просто установите глобальную переменную previousTime и обновляйте ее каждый раз при возникновении события timeupdate. Как только вы нажмете на индикатор выполнения, вы сможете узнать время с помощью предыдущего времени.

var previousTime;
myPlayer.controlBar.progressControl.on('mousedown', function(event) {
  console.log("previous: " + previousTime + " current:" + myPlayer.currentTime());
});

myPlayer.on("timeupdate", function(e) {
  previousTime = myPlayer.currentTime();
});
...