暂无图片
暂无图片
7
暂无图片
暂无图片
暂无图片

【技术】通过加速或跳过网页视频解决进度条无法拖动问题

Scavengers 2021-09-18
20462

一、应用场景

可用于加速或跳过网页上冗长的广告以及网课等视频。

二、加速网页视频与跳过网页视频

1、加速网页视频

(1)F12打开开发者工具,然后Ctrl+Shift+C检查video元素

(2)控制台输入脚本

    function accelerate() {
    let video = document.querySelector('video');
    function play() {
    video.playbackRate = 15; // 加速至原速的15倍
    video.play();
    }
    setInterval(play, 100); // 定时播放,防止被js恢复原速或暂停
    }
    accelerate()

    实战

    (1)适用于爱奇艺、优酷

      var interval_id
      function accelerate() {
      let video = document.getElementsByTagName('video');
      for (let i=0; i<video.length; i++) {
      try {
      if (video[i].duration<131) { // 根据时长判断是否为广告
      video[i].playbackRate = 15; // 加速至原速的15倍
      if (!video[i].isPlay) {
      video[i].play()
      }
      }else{video[i].playbackRate=1}
      }catch(err){console.log(err)}
      }
      }
      interval_id = setInterval(accelerate, 800); // 定时播放,防止被js恢复原速或暂停
      setTimeout('clearInterval(interval_id)',8000)

      (2)适用于网课

        function accelerate() {
        let video = document.getElementsByTagName('video');
        for (let i=0; i<video.length; i++) {
        try {
        video[i].playbackRate = 15; // 加速至原速的15倍
        if (!video[i].isPlay) {
        video[i].play()
        }
        }catch(err){console.log(err)}
        }
        }
        setInterval(accelerate, 800); // 定时播放,防止被js恢复原速或暂停


        2、跳过网页视频

        (1)同上,F12打开开发者工具,然后Ctrl+Shift+C检查video元素

        (2)控制台输入脚本

          function skip() {
          let video = document.querySelector('video');
          video.currentTime = video.duration;
          /* duration获取视频时长,currentTime是视频当前的播放时间,
          通过重置currentTime跳过视频 */
          }
          skip()

          实战

          (1)适用于优酷,但似乎不适用于跳过爱奇艺广告

            var interval_id
            function skip() {
            let video = document.getElementsByTagName('video')
            for (let i=0; i<video.length; i++) {
            try {
            if (video[i].duration<131) {
            video[i].currentTime = video[i].duration
            }
            } catch(err) {console.log(err)}
            }
            }
            interval_id = setInterval(skip,800)
            setTimeout('clearInterval(interval_id)',600)

            (2)适用于网课

              function skip() {
              let video = document.getElementsByTagName('video')
              for (let i=0; i<video.length; i++) {
              video[i].currentTime = video[i].duration
              }
              }
              skip()



              文章转载自Scavengers,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

              评论