记一次在教育在线网课的挂课操作记录
通常在网络视频课程学习时,获得学习积分有两类:
第一类: 通过用户心跳检测用户是否在线,同时服务器端根据在线时长与其它逻辑积分。
(这种方案在客户端是无论如何也快不了的,只能老老实实消耗相应的时间)
第二类: 通过看完视频(发出ended事件)、视频播放时间达到临近结尾时、视频播放经过事先设定的几个时间锚点时等逻辑来触发得到积分(主要讨论这类)。
针对这类触发方式,用以下三行代码来分别对应:
- 直接发送视频观看完成事件(当前的寒假研修就是这种方式):
document.querySelector("video").dispatchEvent(new Event("ended"))
- 直接设置视频播放到结尾(商业培训类有一类视频就是这种):
var v=document.querySelector("video");
if(v){
v.muted=true;
v.currentTime=Math.floor(v.duration);
v.play();
}
- 高倍速播放(必须经过几个时间锚点,学习公社上有一些视频是这种)【插件市场上已经有很多倍速播放视频的插件,可直接安装使用】:
var v=document.querySelector("video");
if(v){
v.muted=true;
v.playbackRate=16;//0.1-16任意设置
v.play();
}
- 其实还有一种就是通过控制台的网络面板,编辑并重播请求(EDGE中是这样的称呼),修改相应的参数再提交一次。【这种比较危险,不建议使用】
以上js代码如何运行?
1 写成浏览器插件,这个需要有一定的js知识并阅读浏览器插件写作规范,相对新手不太友好,但它可以实现批量自动化,全程无需人肉干预。
2 粘贴代码到油猴插件中运行,也比较繁琐,个人不推荐。
3 直接在浏览器中运行【强烈推荐】。
运行方法如下(以第一种方案的代码为例,其它方案只是要运行的代码不同):
(1) 在观看视频的页面地址栏输入【适用于临时执行一次】
javascript: document.querySelector("video").dispatchEvent(new Event("ended"))
【注意javascript:】这个单词和冒号在地址栏是不能粘贴的,只能手动输入
F12 输入以下代码
document.querySelector("video").dispatchEvent(new Event("ended"))
var v=document.querySelector("video");
if(v){
v.muted=true;
v.currentTime=Math.floor(v.duration);
v.play();
}
点击重新播放,开始播放,直至显示视频完成(标志是后面的空心圆变成实心圆)
再次输入上面的代码。
课时就可以增加了。
人生最大的敌人是自己,也只有自己才能成为最大的朋友。

浙公网安备 33010602011771号