在视频看课业务中,经常会对用户的视频学习记录进行记录,类似于视频网站的播放记录,区别是视频课程包含多个章节,需要记录XXX课程,第一节看课进度,第二节看课进度,等等。今天就来说说这块的两种实现方案,以及他们的优缺点和适用场景。
方案A:setInterval定时上报+video事件
至于课程,小节,进度时间,都只是上报后端的参数,用来做数据分类用的,这里就不做赘述,着重看Video具体的上报触发点和技术实现方案。
当视频开始播放或者暂停之后再次播放该事件都会被触发,在play事件触发后设置一次timer。
视频暂停。
视频结束。
结合这三个事件对播放记录进行记录。
该方案优点是所涉及的事件支持性较好,缺点是代码过于繁琐,要考虑各种播放场景对定时器进行操作。
方案B:Video timeupdate事件 + _.throttle
在currentTime当前播放时间改变之后触发的事件,不用考虑暂停,结束,重新播放等场景。
此处设置一个2S的阈值,来触发刚开始播放时候的进度保存。
该方案需要考虑播放的业务场景较少,缺点是timeupdate事件再视频设置了cue旁白的时候,旁白没有变,该事件也会被触发,不过目前业务没有涉及,等后续落地到实际项目中再看看兼容性,目前看该事件得到的支持性显示是full。
— END —
版权声明:本文为song_de原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。