针对慕课网添加多倍速播放(默认最大 2 倍,现在支持到 4 倍)、自动播放下一条视频
当前为
// ==UserScript==
// @name 慕课网添加多倍速播放、自动播放下一条视频
// @namespace
// @version 0.2
// @description 针对慕课网添加多倍速播放(默认最大 2 倍,现在支持到 4 倍)、自动播放下一条视频
// @author Bamboo
// @include /^http(s?)://www.imooc.com/(.*)$/
// @grant unsafeWindow
// @run-at document-end
// @require https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js
// @namespace http://tampermonkey.net/
// ==/UserScript==
//添加多倍速播放
function liClickEvent(obj){
$(obj).parent().find('li').removeClass('current')
$(obj).addClass('current');
var currentSpeedText = $(obj).text();
var currentSpeed = currentSpeedText.replace(/[^0-9]/ig, '');
var cssAttrs = $('.vjs-playback-rate-value').attr('class');
var rateNum = cssAttrs.replace(/[^0-9]/ig, '');
$('.vjs-playback-rate-value').removeClass('rate' + rateNum + 'x').addClass('rate' + (currentSpeed * 10 > 100 ? (currentSpeed * 10 / 10) : currentSpeed * 10) + 'x')
if (currentSpeed.length == 2) {
currentSpeed = currentSpeed / 10;
} else if (currentSpeed.length == 3) {
currentSpeed = currentSpeed / 100;
}
$('.vjs-playback-rate-value').css('background-image','url()');
$('.vjs-playback-rate-value').text(currentSpeed + 'x');
var video = document.getElementsByTagName("video")[0] || document.getElementById("videoPlayer") || document.querySelector('video');
if (video){
video.play();
video.playbackRate = currentSpeed;
}
}
var addExtSpeedPlay = function () {
var extSpeedArr = ['2.5x', '3x', '3.5x', '4x'];
var ulList = $('#vjsMenu').children('ul')
var appendHtml = '<li class="vjs-menu-item" tabindex="-1" role="menuitem" aria-live="polite">?<span class="vjs-control-text"></span><i class="imv2-check"></i></li>';
for (var i = 0; i < extSpeedArr.length; i++) {
var appendLi = appendHtml.replace('?', extSpeedArr[i]);
ulList.prepend(appendLi)
}
//$('#vjsMenu').delegate('li', 'click', function(){
//});
$('ul.vjs-menu-content').on('click', 'li', function(){ //只要改这一行就可以了
liClickEvent(this);
});
};
//自动播放下一条视频 参考372498,不过有的失效的地方我已经改掉
var nextMask = document.querySelector('div.next-box.J_next-box');
var loop = setInterval(function () {
if (!nextMask.classList.contains('hide')) {
document.querySelector('span.J-next-btn.next-auto.moco-btn.moco-btn-green').click();
}
}, 1000);
;(function () {
'use strict';
setTimeout(function(){
addExtSpeedPlay();
}, 3000)
})();