极客时间视频播放优化

try to take over the world!

当前为 2019-07-23 提交的版本,查看 最新版本

// ==UserScript==
// @name         极客时间视频播放优化
// @namespace    Yx
// @version      1.1
// @description  try to take over the world!
// @icon         http://tvax4.sinaimg.cn/crop.0.0.996.996.180/006d9cayly8fpqt30cr2ej30ro0ro74u.jpg?Expires=1563811579&ssig=kCwD4wCfuy&KID=imgbed,tva
// @author       Yx_Zou
// @include      https://time.geekbang.org/course/detail/*
// @grant        none
// @run-at       document-end
// ==/UserScript==

(function () {
    'use strict';
    // 阻塞时间
    let time = 3000
    // 右键一次加时间(s)
    let addTime = 5
    // 左键一次减时间(s)
    let lessTime = 5
    var delay = null
    window.onload = function () {
        setTimeout(function () {
            let dVideo = document.getElementsByTagName('video')[0]
            dVideo.addEventListener("click", judge)
            dVideo.addEventListener("dblclick", fullScreen)
            function judge() {
                if (delay) {
                    delay = clearTimeout(delay);
                }
                delay = setTimeout(function () {
                    let pausedType = true
                    if (isFullScreen()) {
                        pausedType = !dVideo.paused
                    } else {
                        pausedType = dVideo.paused
                    }
                    if (pausedType) {
                        dVideo.play()
                    } else {
                        dVideo.pause()
                    }

                }, 400);
            }
            function fullScreen() {
                if (delay) {
                    delay = clearTimeout(delay);
                }
                dVideo.requestFullscreen()
            }
            function isFullScreen() {
                return document.isFullScreen || document.mozIsFullScreen || document.webkitIsFullScreen
            }
            document.onkeydown = function (event) {
                let e = event || window.event
                console.log(e.keyCode)
                if (e && e.keyCode == 37) { //左
                    dVideo.currentTime = dVideo.currentTime - lessTime < 0 ? 0 : dVideo.currentTime - lessTime
                }
                if (e && e.keyCode == 39) { //右
                    dVideo.currentTime = dVideo.currentTime + addTime > dVideo.duration ? dVideo.duration : dVideo.currentTime + addTime
                }
                if (e && e.keyCode == 13) { // Enter
                    let pausedType = true
                    pausedType = dVideo.paused
                    if (pausedType) {
                        dVideo.play()
                    } else {
                        dVideo.pause()
                    }
                }
            };
        }, time);
    }
})();