JavaScript / PHP: отслеживать время просмотра видео пользователем на веб-странице? - PullRequest
0 голосов
/ 13 апреля 2020

Мой клиент предлагает видео-учебник на сайте, где могут зарегистрироваться как учителя, так и студенты. Время просмотра видео каждого ученика должно отслеживаться, чтобы дать обратную связь учителям. Сайт разработан с использованием чистого HTML / PHP / JS / MySQL. Видео доставляются хостингом, и специальный JavaScript -API не предоставляется. Я знаю, что нет способа убедиться, что кто-то действительно смотрит и понимает содержание видео (кроме как предлагая экзамены / викторины), поэтому под «просмотром» я подразумеваю отслеживание времени во время сочетания следующих технических фактов:

  • окно браузера видно (не свернуто / вкладка в фоновом режиме)
  • видео запущено (не приостановлено / не остановлено)

В связи с тем, что видео имеет продолжительность не менее 6 минут, нет необходимости указывать точное количество секунд - здесь достаточно приблизительного значения + - 10 se c. Я уже разработал следующий подход, но я не знаю, есть ли какие-то серьезные недостатки, о которых я еще не думал: как только видео начинает воспроизводиться, интервал срабатывает каждые, например, 10 секунд. Если состояние видео «работает» и document.visibilityState не «скрыто», интервал запускает запрос ajax к базе данных, который сохраняет запись «user_id, video_id, datetime». Таким образом, cronjob может собирать эти этапы один раз в день и вычислять общее время просмотра на основе пользователя / видео. Конечно, я должен убедиться, что время между этими записями не превышает определенного значения, в нашем случае, скажем, 15 секунд, чтобы видео не было приостановлено в течение более длительного времени.

Кто-нибудь знает более умный и / или более безопасный способ, или вы видите какие-либо серьезные недостатки, касающиеся

  • надежности
  • функциональность (настольные / мобильные браузеры) * производительность 1016 *
  • ( база данных?)

Спасибо, что поделились со мной своими мыслями!

...