Как узнать, что вызывает воспроизведение HTML-видео?

Как узнать, что вызывает воспроизведение HTML-видео?

Есть HTML видео тег. Я хочу знать, когда он начнет играть:

  • Это вызвано autoplay ?
  • Это вызвано вызовом play() в JavaScript?
  • Это вызвано пользовательским нажатием на кнопку воспроизведения?

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

Мое текущее решение:

 function videoEventHandler(ev) { var videoElem = ev.target; if (!videoElem.controls) { // no controls in video, means events can't be caused by user actions return true; } switch (ev.type) { case 'play': if (videoElem.autoplay {amp}amp;{amp}amp; !videoElem.hasPaused) { // first play event in autoplay video, muse be caused by autoplay return true; } // deal with play event caused by user actions return true; case 'pause': ev.target.hasPaused = true; // deal with pause event caused by user actions return true; } } 

Проблема: Мое решение не может справиться со следующими сценариями:

  • Не известно, вызвано ли событие воспроизведения вызовом JavaScript play()
  • Он не знает, заканчивается ли событие паузы, вызванное видео

Обратите внимание: я не могу добавить флаг в play() , потому что он вызывается на веб-странице. Веб-страница не написана мной, и я не могу ее изменить. (Я пишу расширение Chrome)

Может ли кто-нибудь помочь мне в этом?

Это очень конкретный вопрос, он может кого-то сбить с толку. Если мой вопрос вас смущает, пожалуйста, оставьте комментарий, и я постараюсь объяснить более четко. Оценил.

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector