2

我的客户提供了一个视频教程网站,教师和学生都可以在其中注册。应跟踪学生观看每个视频的视频时间,以便向教师提供反馈。该网站是使用纯 HTML/PHP/JS/MySQL 开发的。视频由视频托管商提供,没有提供特殊的 JavaScript-API。我知道没有办法确保有人真的在观看和理解视频的内容(除了提供考试/测验),所以“观看”是指结合以下技术事实来跟踪时间:

  • 浏览器窗口可见(未最小化/后台选项卡)
  • 视频正在运行(未暂停/停止)

由于视频的持续时间至少为 6 分钟,因此没有必要获得确切的秒数 - 一个近似值 +- 10 秒就足够了。我已经制定了以下方法,但我不知道是否有任何我还没有想到的主要缺点:一旦视频开始播放,每隔 10 秒就会触发一次间隔。如果视频的状态是“正在运行”并且 document.visibilityState 不是“隐藏”,则间隔会向数据库发出 ajax 请求,该请求会保存条目“user_id, video_id, datetime”。因此,cronjob 可以每天收集一次这些里程碑,并根据用户/视频计算总观看时间。当然,我必须确保这些条目之间的时间不超过某个值,在这种情况下,假设为 15 秒,

有谁知道更聪明和/或更安全的方法,或者您是否看到任何主要缺点

  • 可靠性
  • 功能(桌面/移动浏览器)
  • 性能(数据库?)

感谢您与我分享您的想法!

4

0 回答 0