// ==UserScript== // @name 宏志助航计划 - 自动播放 // @namespace https://bbs.tampermonkey.net.cn/ // @version 1.0.6 // @description 在你的代码基础上,修复自动播放问题(静音 + 等待 ready) // @author 宿院网管 // @run-at document-idle // @grant unsafeWindow // @match https://hzzh.chsi.com.cn/kc/xx/* // ==/UserScript== let rate = 2; // 倍速 unsafeWindow.addEventListener('load', function () { const video = unsafeWindow.document.querySelector('video'); if (!video) return; // 设置倍速(当播放时生效) video.onplay = function () { video.playbackRate = rate; }; // 重写 setInterval(加速定时器) let hookSetInterval = unsafeWindow.setInterval; unsafeWindow.setInterval = function (a, b) { return hookSetInterval(a, b / rate); }; // === 关键修复:自动播放逻辑 === function autoPlay() { video.muted = true; // 必须静音!绕过 autoplay 策略 video.volume = 0; const playPromise = video.play(); if (playPromise && typeof playPromise.then === 'function') { playPromise.catch(err => { // 如果失败,监听 canplay 再试一次 video.addEventListener('canplay', () => { video.play().catch(e => console.warn('[宏志助航] 重试播放失败:', e)); }, { once: true }); }); } } // 尝试立即播放 autoPlay(); // 监听 ended 实现循环(保留你的逻辑) video.addEventListener('ended', function () { autoPlay(); // 使用带静音的播放函数,更可靠 }); }, { once: true });