纯javascript实现超星尔雅倍速播放自动下一集

1.主要功能:

  • 播放视频期间可以干自己的事
  • 任意倍速播放

2.代码:

var iframe=$("#iframe").contents().find("iframe").contents();
var video=iframe.find("#video_html5_api")[0];//找到video对象
video.onmouseout=function(){
    return true;
}

video.play();//播放
video.muted=true;//静音
video.playbackRate=12;//倍速播放
window.setInterval(function(){
    if(video.ended){//视频播放完
        alert("视频已播完");
    }
    var ul=iframe.find(".ans-videoquiz-opts:visible");
    if(ul){//有题目出现
        iframe.find(".ans-videoquiz-opts input[value='true']").attr("checked",true);
        iframe.find(".ans-videoquiz-submit").trigger("submit");
    }
}, 3000);

3.使用:

1.进入视频播放页面
2.浏览器控制台输入上述代码(根据自己需求更改代码,比如几倍速播放啥的)

video.playbackRate=12;//倍速播放

此为12倍速,即:12分钟的视频1分钟给你播完(滑稽滑稽滑稽)
3.回车
4.如没报错即可实现倍速播放

4.注意:

根据自己实际网速选择几倍速播放,如果太大可能出现缓冲问题(视频不动了),请重新刷新页面再输入代码重试.
倍速播放肯定会被检查出来的,貌似就给个提醒,就没然后了.
相信大家都和我一样,一个字懒,这种小事可以忽略.
反正跟剧个人情况选择使用(后果自负).
如果对此还不满足可以参考另一篇博文:https://blog.csdn.net/qq_40077167/article/details/84858511

5.代码更新:

  • 视频题目自动提交
  • 新增自动播放下一视频
function start() {
    var iframe=$("#iframe").contents().find("iframe").contents();
    console.log("欢迎进入自动挂课插件");
    var video=iframe.find("#video_html5_api")[0];//找到video对象
    if(video == undefined){
        console.log("没有找到网页播放器");
    }else{
        console.log("欢迎进入自动挂课插件");

    }
    video.play();//播放
    video.muted=true;//静音
	video.playbackRate=12;//倍速播放 此处12速率播放
    window.setInterval(function(){
	
        if(video.ended){//视频播放完
			var current=$("#selector .currents").parent().parent();
			if(current==undefined){//适配二级目录
				current=$("#selector .currents").parent().parent().parent();
			}
			current.find("a")[0].click();
	        window.setTimeout(function(){
			  	start();
			},2000);  
	        console.log("正在为你自动播放下一个视频");start();
        }
        var ul=iframe.find(".ans-videoquiz-opts:visible");
        if(ul){//有题目出现
            iframe.find(".ans-videoquiz-opts input[value='true']").attr("checked",true);
            iframe.find(".ans-videoquiz-submit").trigger("click");//ext-gen1045
        }
    }, 5000);

    $("div").mouseleave(function () {
        video.play();
    });

}
start();

用法同上.

6.更新

  • 修复视频自动播放问题
function playVideo(){
	let iframe=$("#iframe").contents().find("iframe").contents();
    let video=iframe.find("#video_html5_api")[0];//找到video对象
    if(video == undefined){
        console.log("没有找到视频播放器");
		return;
    }
    video.play();//播放
    video.muted=true;//静音
	video.playbackRate=12;//倍速播放 此处12速率播放
	let text=$(".ncells .currents .hideChapterNumber").text().trim();
    var tid=window.setInterval(function(){
        let ul=iframe.find(".ans-videoquiz-opts:visible");
        if(ul){//有题目出现
            iframe.find(".ans-videoquiz-opts input[value='true']").attr("checked",true);
            iframe.find(".ans-videoquiz-submit").trigger("click");//ext-gen1045
        }
        if(video.ended){//视频播放完
        	console.log(text+"节已播放完")
	        if($(".ncells .currents .roundpointStudent").hasClass("blue")){
				console.log(text+"节任务点已完成")
				let curr=$('.ncells .jobCount').first().next();
				if(curr==undefined){
					console.log('课程已看完');
					clearInterval(tid);
					return;
				}
				curr.click();
				let fun=curr.attr('href').substr(11);
				eval(fun);
				window.setTimeout(function(){
					console.log("正在为你自动播放下一个视频");
					clearInterval(tid);
					playVideo();
				},5000);
			}
	        return;
        }
    }, 5000);

    $("div").onmouseout=function(){
		video.play();
		return true;
	}
}
function start(){
	let curr=$('.ncells .jobCount').first().next();
	if(curr==undefined){
		console.log('课程已看完');
		clearInterval(tid);
		return;
	}
	curr.click();
	let fun=curr.attr('href').substr(11);
	eval(fun);
	window.setTimeout(function(){
		playVideo();
	},5000);
}
start();

你可能感兴趣的:(前端)