molor 发表于 2021-12-17 21:59:18

纯小白入不了门,求带进坑。控制台能运行,存成脚本就...

// ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/
// @version      0.1
// @descriptiontry to take over the world!
// @author       You
// @match      http://eel2.youmoo.cn/*
// @icon         https://www.google.com/s2/favicons?domain=youmoo.cn
// @grant      none
// ==/UserScript==

(function foo() {
    if(document.querySelector('video').paused){
    document.querySelector('video').play()
}else{
      setTimeout(foo, 1000)
}
})();
就是想做个监测视频,只要暂停了就让播放的功能。。

Hangover 发表于 2021-12-17 21:59:19

本帖最后由 Hangover 于 2021-12-17 22:38 编辑

molor 发表于 2021-12-17 22:09
这个是防暂停部分的调试过程,似乎没问题,等大神来之前再试试循环的部分。。 ...
你那个网站我进不去, 我以B站为例子每一秒检测一次 检测到暂停后自动播放
// ==UserScript==
// @name         New Userscript
// @namespace    https://bbs.tampermonkey.net.cn/
// @version      0.1.0
// @descriptiontry to take over the world!
// @author       You
// @match      https://www.bilibili.com/video/*
// ==/UserScript==

(function () {
    'use strict';
    var video = document.querySelector('video');
    setInterval(() => {
      if (video.paused) {
            video.play();
      }
    }, 1000);
})();

molor 发表于 2021-12-17 22:09:30

if(document.querySelector('video').paused){
    document.querySelector('video').play()
}else{
      alert="ok"
}
Promise {<pending>}
if(document.querySelector('video').paused){
    document.querySelector('video').play()
}else{
      alert="ok"
}
'ok'

这个是防暂停部分的调试过程,似乎没问题,等大神来之前再试试循环的部分。。

李恒道 发表于 2021-12-18 10:14:48

这个可以参考脚本调试那节,一步一步跟一下,看看出什么问题了

Hangover 发表于 2021-12-18 10:39:30

var video = document.querySelector('video');
    setInterval(() => {
      if (video.ended) {
            //写自动播放下一个视频的代码
            console.log(video.ended); //ture
      } else if (video.paused) {
            video.play();
      }
    }, 3000);逻辑应该没问题,剩下的哥哥自己写写...

李恒道 发表于 2021-12-18 11:03:50

Hangover 发表于 2021-12-18 10:39
逻辑应该没问题,剩下的哥哥自己写写...

我也感觉逻辑没问题的

Hangover 发表于 2021-12-18 11:06:50

李恒道 发表于 2021-12-18 11:03
我也感觉逻辑没问题的

但我感觉用addEventListener监听状态会更好,定时器会给浏览器增加负担

Hangover 发表于 2021-12-18 12:00:19

本帖最后由 Hangover 于 2021-12-18 12:51 编辑

addEventListener监听元素状态变化会更温和点,测试也能达到同样的效果

// ==UserScript==
// @name         New Userscript
// @namespace    https://bbs.tampermonkey.net.cn/
// @version      0.1.0
// @descriptiontry to take over the world!
// @author       You
// @run-at       document-end
// @match      https://www.bilibili.com/video/*
// ==/UserScript==

(function () {
    'use strict';
    var video = document.querySelector('video');
    //loadedmetadata 事件在指定视频/音频的元数据加载后触发
    video.addEventListener('loadedmetadata', () => {
      setTimeout(() => {
            video.play();
            console.log('开始播放了!');
      }, 3000); //3秒后自动播放
    });
    video.addEventListener('pause', () => {
      if (video.ended) {
            //写自动播放下一个视频的代码
            console.log('播放完了!');
      } else if (video.paused) {
            video.play();
            console.log('暂停后继续播放!');
      }
    });

    /* setInterval(() => {
      if (video.ended) {
            //写自动播放下一个视频的代码
            console.log(video.ended); //ture
      } else if (video.paused) {
            video.play();
      }
    }, 3000); */
})();

molor 发表于 2021-12-18 19:48:34

非常感谢,思路有了,甚至伸手要到了现成代码,我马上试试。

molor 发表于 2021-12-18 19:55:44

Hangover 发表于 2021-12-17 21:59
你那个网站我进不去, 我以B站为例子每一秒检测一次 检测到暂停后自动播放




{:4_115:}伸手使我愧疚,完美运行,我继续看索引学习Promise判定去了。。非常感谢!
页: [1] 2
查看完整版本: 纯小白入不了门,求带进坑。控制台能运行,存成脚本就...