Событие прерывания видео / аудио JavaScript

1

Моя цель - собрать общее время, которое пользователь просматривает на данном носителе, в данном случае, видео. Я прочитал как w3schools, так и MDN, чтобы определить, есть ли событие для обработки следующего сценария:

Пользователь просматривает видео, но, прежде чем завершить видео, они закрывают браузер. В этом случае ended не запускается, и в моем случае вызов currentTime эксплуатационно дорого, так как это означает, что мы должны каждый раз звонить нашим серверам, чтобы передать информацию секунд для видео для каждого пользователя, просматривающего видео.

Когда браузер закрывается, мы не можем передавать какую-либо информацию на наш сервер аналитики с момента остановки сеанса.

Существуют ли какие-либо события, которые могут быть вызваны из браузера на сервер, чтобы сообщить нам, было ли видео:

  1. Прерванный?
  2. Как далеко пользователь увидел видео?
Теги:
video
html5-video

1 ответ

1
Лучший ответ

Запуск этого из браузера будет сложным, так как, очевидно, пользователь, закрывающий браузер, должен "остановить" его от донга. Даже если браузер делает некоторое контролируемое выключение и очистку, вы, скорее всего, обнаружите, что это будет конкретный браузер.

На стороне сервера, с другой стороны, большинство видео потоков в кусках, либо с помощью простых запросов байта HTTP, либо через сегментированный потоковый протокол ABR, такой как HLS или MPEG-DASH.

Браузер запрашивает фрагмент видео с помощью куска, когда пользователь смотрит его, поэтому сервер увидит, когда какой-то конкретный пользователь перестает запрашивать куски.

Некоторые (большинство?) Аналитических систем будут принимать входные данные от событий сервера, а также от клиентских событий и предоставлять некоторый механизм для их корреляции, поэтому вы можете использовать это событие на стороне сервера, чтобы предоставить вам нужные вам данные. Например, Google Analytics поддерживает события сервера, хотя она скрыта под путающим заголовком (IMO) "Протокол измерений" (ссылка правильная в момент времени или запись и просто приведена в качестве примера - множество других аналитических услуг):

Данные отправляются в Google Analytics как HTTP POST и включают информацию, такую как идентификатор отслеживания Google Analytics и идентификатор клиента - см. Этот пример из документации по полезной нагрузке:

v=1              // Version.
&tid=UA-XXXXX-Y  // Tracking ID / Property ID.
&cid=555         // Anonymous Client ID.
&t=              // Hit Type.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню