在线教育平台关于课程进度的处理方法
看过几个开源的在线教育平台系统,关于学习课程的进度没有进行处理.选择一个课程后进行播放,播放几分钟后退出,再进入的时候课程进度显示100%或者是无进度显示,手动点击已完成结束课程的学习.这个对于强制学习的项目就显得不合理了,由于对web视频播放不是很了解,该问题没有想到好的方法解决.
如果是控件进行播放视频,控件如果能统计播放时间的话就可以了.但是找了几个视频播放控件,API中没有正在播放的视频实际播放时间的统计功能.
后来又调查了腾讯课堂和网易云课堂,网易云课堂和开源的项目处理是一样的,只有课程进行中的显示,腾讯课堂是有进度百分比显示的.于是打开Firebug查看网络交互,发现每隔30s,浏览器会POST report_study_record,参数有持续时间(30S或31S),课程id,用户id等相关信息.应该是在视频播放的时候通过javascrpt定时发送POST消息,此外还有暂停视频播放的时候也会有该消息,如果直接关闭页面的话就没有了,这样的话最多少30S的计时时间.然后我在Firebug中右键选择POST消息,再选择重现发送,发送多次后返回课程列表后课程的已学习时间已经相应增加了.
剩下的问题就是JS对视频播放和暂停状态的获取以及计时(setTimeout和clearTimeout)的功能实现了.