您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
用于真学网站的视频播放器助手
// ==UserScript== // @name 真学添加视频加速按钮 // @description 用于真学网站的视频播放器助手 // @namespace Violentmonkey Scripts // @match http://bl.crtvup.com.cn/index.php // @grant none // @version 1.2.1 // ==/UserScript== (function() { 'use strict'; var speedList = [1, 1.25, 1.5, 1.75, 2]; var vjs = null; var currentVideo = null; function getVideoElement(id) { var node = null; let videoListNode = document.getElementsByClassName("video_list"); Array.prototype.forEach.call(videoListNode, function(e) { let data = e.getAttribute("data-name"); if (data == id) { node = e; } }); return node; } function registerVideoList() { let videoListNode = document.getElementsByClassName("video_list"); Array.prototype.forEach.call(videoListNode,function(e) { e.onclick = function(){onObjSelect(this);}; }); // 尝试恢复上次播放的视频 tryRestore(); } // 设置播放速度 function setSpeed(rate) { vjs.tech_.setPlaybackRate(rate); localStorage.setItem("rate", rate); } // 恢复上次设置的播放速度 function restoreSpeed() { let rate = localStorage.getItem("rate"); if (rate != null) { vjs.tech_.setPlaybackRate(rate); } } function onObjSelect(obj) { let data = obj.getAttribute("data-name"); localStorage.setItem("video_path", data); currentVideo = data; console.log(data); } function tryPlay(data) { let ele = getVideoElement(data); if (ele != null) { ele.click(); } } // 尝试恢复上次播放的视频 function tryRestore() { let data = localStorage.getItem("video_path"); if (data != null) { tryPlay(data); } } // 播放下一个视频 function playnext() { getVideoElement(currentVideo).parentElement.nextElementSibling.childNodes[0].click(); } window.onload=function() { vjs = window.videojs.getPlayers("my-video")["my-video"]; // 添加视频加速按钮 let controlBar = document.getElementsByClassName("vjs-control-bar")[0]; speedList.forEach(function(e){ let btn=document.createElement("button"); let text=document.createTextNode(e+"x"); btn.appendChild(text); controlBar.appendChild(btn); btn.setAttribute("data", e); btn.onclick=function() { setSpeed(e); }; }); // 删除右键菜单屏蔽 document.body.oncontextmenu = null; document.getElementById("my-video").oncontextmenu = null; document.getElementById("my-video_html5_api").oncontextmenu = null; // 修改视频高度 document.getElementById("my-video").style.height = "calc(100vh - 60px)"; document.getElementById("right_list").style.height = "calc(100vh - 60px)"; // 注册列表改变事件 let listNode = document.getElementById("main-menu"); let config = { attributes: false, childList: true, subtree: true }; let observer = new MutationObserver(function(mutationsList) { registerVideoList(); }); observer.observe(listNode, config); registerVideoList(); // 注册播放完毕事件,用于连播 vjs.on("ended", playnext); // 注册加载事件,用于调整播放速度 vjs.on("loadstart", restoreSpeed); } })();