雨课堂追帧

雨课堂直播追帧:保持延迟在 3s 内

  1. // ==UserScript==
  2. // @name 雨课堂追帧
  3. // @version 0.1.4
  4. // @description 雨课堂直播追帧:保持延迟在 3s 内
  5. // @author panda2134
  6. // @match *://*.yuketang.cn/*
  7. // @run-at document-idle
  8. // @grant none
  9. // @namespace https://gf.qytechs.cn/users/379925
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14. var player, intv;
  15. function checkLatency() {
  16. var latency = player.buffered.end(0) - player.currentTime;
  17. var MAX_LATENCY = 3.00;
  18.  
  19. document.getElementById('latency').innerText = '延迟:' + latency.toFixed(2);
  20.  
  21. if (latency > MAX_LATENCY) {
  22. console.log('追帧');
  23. player.playbackRate = 1.1;
  24. player.ontimeupdate = function() {
  25. if(player.buffered.end(0) - player.currentTime < 1) {
  26. player.playbackRate = 1.00;
  27. }
  28. };
  29. }
  30. }
  31. setTimeout(function() {
  32. player = document.getElementById('player');
  33. if(!player) return;
  34. if (!(document.getElementById('latency'))) {
  35. var div = document.createElement('div'), controls = document.getElementsByClassName('video__controls')[0],
  36. cr = document.getElementsByClassName('controls__right')[0];
  37. div.style = 'font-size: 14px;';
  38. div.id = 'latency';
  39. controls.insertBefore(div, cr)
  40. }
  41.  
  42. player.onplaying = function() {
  43. intv = setInterval(checkLatency, 500);
  44. };
  45. player.onwaiting = function() { clearInterval(intv) };
  46. player.onpaused = function() { clearInterval(intv) };
  47. }, 1000)
  48. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址