- // ==UserScript==
- // @name 百度网盘视频倍速
- // @namespace http://www.skji.net/
- // @version 1.0
- // @description 自由调整百度网盘在线播放视频倍速
- // @author E6ther
- // @homepage https://github.com/E6ther/BaiduPan-VideoRate
- // @supportURL https://github.com/E6ther/BaiduPan-VideoRate/issues
- // @match *://pan.baidu.com/*
- // @grant none
- // @run-at document-end
- // ==/UserScript==
-
- (function () {
- 'use strict';
-
- let platRateCSS = {
- "playRateMainCSS": {
- "background-color": "rgba(0, 70, 128, 0.1)",
- "border": "1px solid rgba(0, 70, 128, 0.12)",
- "width": "25px",
- "height": "25px",
- "border-radius": "13px",
-
- "transition": "all 0.2s",
-
- "position": "absolute",
- "top": "18%",
- "right": "2px",
- "z-index": "999999"
- },
- "playRateMainHCSS": {
- "background-color": "rgba(0, 70, 128, 0.5)",
- "border": "1px solid rgba(0, 70, 128, 0.52)",
- "width": "120px",
- "height": "100px",
- "border-radius": "13px",
-
- "transition": "all 0.1s",
-
- "position": "absolute",
- "top": "18%",
- "right": "2px",
- "z-index": "999999"
- },
- "playRateJiCSS": {
- "color": "rgba(0, 70, 128, 0.3)",
- "font-weight": "bold",
- "position": "absolute",
- "top": "50%",
- "left": "50%",
- "transform": "translate(-50%,-50%)"
- },
- "playRateContentCSS": {
- "position": "absolute",
- "top": "50%",
- "left": "50%",
- "transform": "translate(-50%,-50%)"
- },
- "playRateTextCSS": {
- "color": "rgba(255, 255, 255, 1)",
- "font-size": "16px",
- "text-align": "center",
- "-webkit-user-select": "none",
- "-moz-user-select": "none",
- "-ms-user-select": "none",
- "user-select": "none"
-
- },
- "playRateInputRangeCSS": {
- "width": "100px",
- "margin": "5px 0 0 0"
- },
- "playRateInputContentCSS": {
- "display": "flex",
- "align-items": "center",
- "justify-content": "space-between"
- },
- "playRateInputCSS": {
- "border": "1px solid rgba(0, 70, 128, 0.57)",
- "outline": "none",
- "border-radius": "3px",
- "padding": "1px",
- "width": "48px",
- "height": "23px",
- "box-sizing": "border-box"
- },
- "playRateInputInitCSS": {
- "border": "1px solid rgba(0, 70, 128, 0.57)",
- "background-color": "rgba(0, 70, 128, 0.1)",
- "color": "rgba(255, 255, 255, 1)",
- "border-radius": "3px",
- "padding": "0 7px",
- "height": "23px",
- "box-sizing": "border-box"
- }
- }
-
-
- let Rate = localStorage.getItem("Rate"); // 播放速度
- if (!Rate) {
- Rate = 1;
- }
-
- let RateLevel;
-
-
- let video_main = $(".video-main");
-
- if (video_main[0]) {
- console.log("百度网盘视频倍速 - 已获取到视频");
-
- let myVar = setInterval(function () {
- if (window.videojs) {
- let video = window.videojs.getPlayers("video-player").html5player;
-
- if (video) {
-
- videojs.getPlayers("video-player").html5player.tech_.setPlaybackRate(Rate);
- clearInterval(myVar);
- console.log("百度网盘视频倍速 - 调整倍速成功")
-
- playRateControl();
- }
- }
- }, 1000);
-
-
- } else {
- console.log("百度网盘视频倍速 - 未获取到视频");
- }
-
- function playRateControl() {
-
- let body = $("body");
- let playRateMain = $("<div></div>");
- let playRateJi = $("<div>及</div>");
- let playRateContent = $("<div></div>");
- let palyRateText = $("<div></div>");
- let playRateInput = $("<input />");
- let playRateInputContent = $("<div></div>");
- let playRateInputRange = $("<input />");
- let playRateInputInit = $("<input />");
-
- SetCSS();
-
- SetAttr();
-
- AddElements();
-
- EventListen();
-
- ContolHide();
-
- judgeRate();
-
- function SetCSS() {
- playRateJi.css(platRateCSS.playRateJiCSS);
- playRateContent.css(platRateCSS.playRateContentCSS);
- palyRateText.css(platRateCSS.playRateTextCSS);
- playRateInputRange.css(platRateCSS.playRateInputRangeCSS);
- playRateInputContent.css(platRateCSS.playRateInputContentCSS)
- playRateInput.css(platRateCSS.playRateInputCSS);
- playRateInputInit.css(platRateCSS.playRateInputInitCSS);
- };
-
- function SetAttr() {
- playRateMain.attr({"id": "playRateMain"});
- playRateContent.attr({"id": "playRateContent"});
- playRateInput.attr({"type": "number", "step": 0.1, "min": 0, "max": 4, "value": Rate});
- playRateInputRange.attr({"type": "range", "step": 0.1, "min": 0.5, "max": 2.5, "value": Rate});
- playRateInputInit.attr({"type": "button"});
-
- palyRateText.html("请选择速率");
- };
-
- function AddElements() {
- playRateContent.append(palyRateText);
- playRateContent.append(playRateInputRange);
- playRateContent.append(playRateInputContent);
- playRateInputContent.append(playRateInput);
- playRateInputContent.append(playRateInputInit);
-
- playRateMain.append(playRateJi);
- playRateMain.append(playRateContent);
- body.append(playRateMain);
- }
-
- function EventListen() {
- playRateInputRange.bind("input propertychange", function () {
- Rate = playRateInputRange.val();
- ChangeRate();
- });
-
- playRateInput.bind("input propertychange", function () {
- Rate = playRateInput.val();
- ChangeRate();
- });
-
- playRateInputInit.click(function () {
- Rate = RateLevel;
- ChangeRate();
- });
-
-
- playRateMain.hover(function () {
- ContolShow();
- }, function () {
- ContolHide();
- });
- };
-
- function ChangeRate() {
- judgeRate();
- playRateInputRange.val(Rate);
- playRateInput.val(Rate);
- videojs.getPlayers("video-player").html5player.tech_.setPlaybackRate(Rate);
- window.localStorage.setItem("Rate", Rate);
- };
-
- function judgeRate() {
- if (Rate == 1) {
- playRateInputInit.val("x1.5");
- RateLevel = 1.5;
- } else if (Rate == 1.5) {
- playRateInputInit.val("x2");
- RateLevel = 2;
- } else {
- playRateInputInit.val("默认");
- RateLevel = 1;
- }
- }
-
- function ContolShow() {
- playRateJi.hide();
- playRateContent.show();
- playRateMain.css(platRateCSS.playRateMainHCSS);
- };
-
- function ContolHide() {
- playRateJi.show();
- playRateContent.hide();
- playRateMain.css(platRateCSS.playRateMainCSS);
- };
- }
-
- })();