倍速 播放
// ==UserScript==
// @name 视频自动播放(我不是大王)
// @namespace http://tampermonkey.net/
// @version 1.0
// @description 倍速 播放
// @author 我不是大王
// @match *://study.neutech.cn/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
// 创建速度控制面板
const speedControlPanel = document.createElement('div');
speedControlPanel.innerHTML = `
<label for="speed">Speed:</label>
<select id="speed">
<option value="0.25">0.25x</option>
<option value="0.5">0.5x</option>
<option value="1" selected>1x</option>
<option value="1.5">1.5x</option>
<option value="2">2x</option>
<option value="2.5">2.5x</option>
<option value="3">3x</option>
<option value="3.5">3.5x</option>
<option value="4">4x</option>
<option value="4.5">4.5x</option>
<option value="5">5x</option>
<option value="5.5">5.5x</option>
<option value="6">6x</option>
<option value="6.5">6.5x</option>
<option value="7">7x</option>
<option value="7.5">7.5x</option>
<option value="8">8x</option>
</select>
<button id="startButton">Start</button>
`;
speedControlPanel.style.position = 'fixed';
speedControlPanel.style.bottom = '40px';
speedControlPanel.style.right = '40px';
speedControlPanel.style.background = 'LightSkyBlue';
speedControlPanel.style.padding = '30px';
speedControlPanel.style.border = '1px solid #B0C4DE';
speedControlPanel.style.zIndex = '9999';
document.body.appendChild(speedControlPanel);
// 等待页面元素加载完成
function waitForElement(selector, callback) {
const element = document.querySelector(selector);
if (element) {
callback(element);
} else {
setTimeout(() => waitForElement(selector, callback), 500);
}
}
// 自动播放视频
function autoPlayVideo(video) {
if (video) {
video.playbackRate = parseFloat(document.getElementById('speed').value);
video.play().then(() => {
console.log('视频自动播放');
}).catch((error) => {
console.log('视频自动播放失败:', error);
video.muted = true;
video.play().then(() => {
console.log('静音视频自动播放');
}).catch((error) => {
console.log('静音视频自动播放仍然失败:', error);
});
});
} else {
console.log('未找到视频元素');
}
}
// 视频播放结束处理
function handleVideoEnd() {
console.log('视频播放结束');
waitForElement('.netxsection.goNextOne', function(nextButton) {
console.log('找到下一节按钮');
nextButton.click();
});
}
// 监听新视频元素并自动播放
function observeNewVideo() {
waitForElement('#dPlayerVideoMain', function(newVideo) {
console.log('找到新的视频元素');
autoPlayVideo(newVideo);
newVideo.addEventListener('ended', handleVideoEnd);
});
}
// 点击按钮开始播放视频
document.getElementById('startButton').addEventListener('click', function() {
waitForElement('#dPlayerVideoMain', function(video) {
console.log('视频元素已找到');
autoPlayVideo(video);
video.addEventListener('ended', handleVideoEnd);
// 使用 MutationObserver 监控页面变化
const observer = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
if (mutation.addedNodes.length) {
observeNewVideo();
}
});
});
observer.observe(document.body, {
childList: true,
subtree: true
});
});
});
// 添加倍速功能
document.getElementById('speed').addEventListener('change', function() {
const video = document.querySelector('video');
if (video) {
video.playbackRate = parseFloat(this.value);
console.log('当前倍速:', video.playbackRate);
}
});
})();