Greasy Fork

优学院自动静音播放、自动翻页、修改播放速率

自动静音播放每页视频并修改播放速率!

当前为 2020-02-20 提交的版本,查看 最新版本

// ==UserScript==
// @name         优学院自动静音播放、自动翻页、修改播放速率
// @namespace    [url=mailto:[email protected]][email protected][/url]
// @version      1.2.2
// @description  自动静音播放每页视频并修改播放速率!
// @author       EliotZhang
// @match        *://ua.ulearning.cn/learnCourse/*
// @grant        none
// ==/UserScript==

(function () {
    'use strict';

    /*  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     *  优学院自动播放视频并修改播放速率脚本v1.2.2由EliotZhang @ 2020/02/20 最后更新
     *  使用修改播放速率功能请谨慎!!!产生的不良后果恕本人概不承担!!!
     *  如果不需要自动修改播放速率,请注释Main()函数里的最后一行
     *  如果你需要改变自动修改的播放速率,请更改本注释下第一行N的赋值(别改的太大,否则可能产生不良后果!!!默认是1.5倍速,这是正常的!!!最大为15.0,否则可能失效!!!)
     *  如果不需要自动静音功能,请注释PlayVideo()函数标注的那一行
     *  如果脚本无效请查看脚本最后的解决方案,如果还是不行请反馈给本人,本人将会尽快修复
     *  目前尚不支持自动作答回顾练习,将会自动跳过
     *  如果在使用中还有什么问题请通过邮箱联系本人:[email protected]
     *  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     */
    var N = 1.50;

    function PlaySpeedXN() {
        var video = document.getElementsByTagName("video")[0];
        if (video === undefined)
            return;
        if (video.playbackRate != N) {
            video.playbackRate = N;
        }
    }

    function GotoNextPage() {
        var nextPageBtn = document.getElementsByClassName("next-page-btn cursor")[0];
        if (nextPageBtn === undefined)
            return;
        nextPageBtn.click();
    }

    function CheckFinshVideo() {
        var videoStatus = document.getElementsByClassName("video-bottom")[0];
        if (videoStatus !== undefined) {
            var span = videoStatus.getElementsByTagName("span")[0];
            if (span !== undefined && span.innerHTML == "已看完")
                GotoNextPage();
        } else
            GotoNextPage();
    }

    function CheckModal() {
        var alertModal = document.getElementById("alertModal");
        if (alertModal === undefined)
            return;
        if (alertModal.className.match(/\sin/)) {
            var op = alertModal.children[0].children[0].children[2].children[1].children[1].children[1];
            if (op === undefined)
                return;
            op.click();
        }
    }

    function PlayVideo() {
        var video = document.getElementsByTagName("video")[0];
        if (video === undefined) {
            var player = document.getElementsByClassName("mejs__overlay mejs__layer mejs__overlay-play")[0];
            if (player === undefined)
                return;
            player.click();
            return;
        }
        if (video.paused === true) {
            video.play();
        }
        if (video.muted === false) {
            // 如果不想自动静音,请注释掉下面这行
            video.muted = true;
        }
    }

    function Main() {
        PlayVideo();
        setInterval(CheckModal, "200");
        setInterval(PlayVideo, "400");
        setInterval(CheckFinshVideo, "500");
        // 如果不需要修改倍速请取消注释掉下面这行
        setInterval(PlaySpeedXN, "800");
    }

    // 如果脚本报错则有可能是你的网络太慢,请尝试修改下面的3000为更大数值!
    setTimeout(Main, "3000");

})();