// ==UserScript== // @name 非静音视频播放 // @namespace http://tampermonkey.net/ // @icon https://hikerfans.com/tubiao/movie/113.svg // @version 0.1 // @description 如果视频在自动播放后暂停,用户与页面进行交互(例如点击或按键)时,视频将尝试再次播放。同时,如果视频在尝试播放时由于某些原因失败,脚本会延迟一段时间后重试播放。请注意,由于浏览器的自动播放策略,即使脚本尝试重试,视频也不一定能够播放。 // @license MIT // @author zzzwq // @match *://*/* // @grant none // @downloadURL https://update.greasyfork.icu/scripts/510124/%E9%9D%9E%E9%9D%99%E9%9F%B3%E8%A7%86%E9%A2%91%E6%92%AD%E6%94%BE.user.js // @updateURL https://update.greasyfork.icu/scripts/510124/%E9%9D%9E%E9%9D%99%E9%9F%B3%E8%A7%86%E9%A2%91%E6%92%AD%E6%94%BE.meta.js // ==/UserScript== (function() { 'use strict'; // 自动播放视频的延时时间(毫秒) const AUTO_PLAY_DELAY = 1000; // 1秒后尝试自动播放视频 // 自动播放视频 function autoPlayVideos() { setTimeout(function() { document.querySelectorAll('video').forEach(function(video) { // 设置视频为静音以增加自动播放的机会 video.muted = true; // 尝试播放视频,并在失败时重试 playVideoWithRetry(video); }); }, AUTO_PLAY_DELAY); } // 尝试播放视频,并在失败时重试 function playVideoWithRetry(video) { video.play().catch(function(error) { console.error('Video play failed:', error); // 可以在这里设置重试逻辑,例如使用setTimeout来延迟重试 setTimeout(function() { playVideoWithRetry(video); }, AUTO_PLAY_DELAY); }); } // 用户交互后尝试取消静音 function unmuteOnInteraction() { document.querySelectorAll('video').forEach(function(video) { // 检查视频是否已静音 if (video.muted) { // 尝试取消静音 video.muted = false; // 尝试播放视频 playVideoWithRetry(video); } }); } // 初始化脚本 function init() { // 等待页面加载完成 window.addEventListener('load', autoPlayVideos, false); // 监听用户交互事件以取消静音 document.addEventListener('click', unmuteOnInteraction, false); document.addEventListener('keydown', unmuteOnInteraction, false); } // 开始执行脚本 init(); })();