Элемент видео — Обнаруживает взаимодействие воспроизведения/паузы и игнорирует события, вызванные функцией поиска

#javascript #video #dom-events #html5-video

Вопрос:

У меня проблема с событиями видеоэлемента. Я хочу запускать событие аналитики только при взаимодействии с кнопкой воспроизведения или паузы. События play , pause , и playing работают должным образом до тех пор, пока не будет использована функция поиска. Когда видео воспроизводится и по нему щелкают (перемещают в другую точку), play события , playing , и pause запускаются, потому что видео приостанавливается для буферизации и начинает воспроизведение видео снова. Этот порядок не всегда одинаков. Когда вы останавливаетесь, вы не получаете ни одного из этих событий.

При отладке playing pause событий и. Я видел следующий порядок:

  • Заказ 1: Pause , Seeking , Seeked , Playing
  • Порядок 2: Pause , Playing , Seeking , Seeked , Playing

Эта ссылка дает вам хорошее представление о вышесказанном. Я также настроил свою собственную версию, чтобы вы могли просматривать журналы консоли.

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

Я попытался установить флаг, который сбрасывается по тайм-ауту, и установить/проверить последнее состояние для каждого события, например lastEvent = 'seeking' . Ни один из них не сработал на 100% из-за несогласованного приказа о пожаре. Если вы перетащите панель поиска, она не будет запускать play события, playing , или paused , которые добавляют другой сценарий.