Как поймать событие перетаскивания/пропуска/пересылки проигрывателя Youtube с помощью API в javascript

Я просматриваю документацию для onStateChange, но ничего не нахожу, даже если пользователь будет перетаскивать таймер проигрывателя влево или вправо. Фактически, onStateChange ничего не улавливает, когда я это делаю.

Это из документации:

https://developers.google.com/youtube/iframe_api_reference

Это событие срабатывает всякий раз, когда изменяется состояние игрока. Свойство данных объекта события, которое API передает вашей функции прослушивателя событий, будет указывать целое число, соответствующее новому состоянию игрока. Возможные значения:

-1 (unstarted)
0 (ended)
1 (playing)
2 (paused)
3 (buffering)f
5 (video cued).

Когда проигрыватель впервые загружает видео, он транслирует незапущенное (-1) событие. Когда видео установлено и готово к воспроизведению, проигрыватель будет транслировать событие видеосигнала (5). В своем коде вы можете указать целые значения или использовать одну из следующих переменных пространства имен:

YT.PlayerState.ENDED
YT.PlayerState.PLAYING
YT.PlayerState.PAUSED
YT.PlayerState.BUFFERING
YT.PlayerState.CUED

Но Youtube каким-то образом делает это сам, когда вы пытаетесь поделиться видео! Перейдите к видео на YouTube и нажмите кнопку «Поделиться», а затем посмотрите на текстовое поле «Начать с», пытаясь перетащить таймер проигрывателя. Текстовое поле обновляется с помощью getCurrentTime игрока. Как это делает Ютуб?


person Kamy D    schedule 06.02.2015    source источник


Ответы (1)


Похоже, что на YouTube нет такого прослушивателя событий... или, по крайней мере, я не смог его найти. Поэтому вместо этого я использую setInterval для непрерывного вызова вызова API getCurrentTime(). Если есть лучший подход, пожалуйста, дайте мне знать. Спасибо

function onPlayerStateChange(event) {

    timeInterval = setInterval(function() { 
        setCurntTime( txtBox, event.target.getCurrentTime() ) 
         }, 1500);
}
person Kamy D    schedule 08.02.2015