解决新版雨课堂后台播放自动暂停问题

问题背景

近期雨课堂升级至新版(2025年6月初),用户挂在后台刷课时发现视频会自动暂停,不再像以前一样可以同时刷多个视频;甚至切换标签页和最小化时视频也会自动暂停

解决方案:控制台注入代码

打开浏览器开发者工具(F12),进入“Console”/控制台面板,
请添加图片描述
输入以下代码并执行:

HTMLVideoElement.prototype.pause = function() {
    console.log('[Hooked] Blocked pause on video element');
};

此代码会重写视频元素的pause方法,使其实际不执行暂停操作,仅输出日志。执行后,切换后台时视频仍会继续播放。

实现原理分析

雨课堂的网页html代码类似这样

<video id="course-video" src="lesson.mp4" controls autoplay></video>

js代码类似这样

//第一行是监听器,监听每个页面自带的属性visibilitychange(可见性变化了吗)
//当变化了就触发停止函数
document.addEventListener("visibilitychange", function () { 
  if (document.visibilityState === "hidden") { 
  //获取视频标签
    const video = document.getElementById("course-video");
    //调用视频标签自带的pause()方法
    video.pause();  // 👈 这是雨课堂调用的“切后台暂停”接口
  }
});
我们方法的原理

前面对于页面可见性的实际判断可能十分复杂,所以我们没有必要从从判断逻辑出发
我们直接从这个函数的最后落脚点出发。只要它最后调用的是web原生的pause方法,我们就可以改写掉原生的pause()方法,让pause()无法发挥原有的功能,也就是hook掉了

//在这里我们重写了pause()方法,让它的功能变成了输出日志
HTMLVideoElement.prototype.pause = function() {
    console.log('[Hooked] Blocked pause on video element');
};

注意:此方法依赖浏览器开发者工具,重启页面后需重新执行。长期解决方案可结合油猴脚本(Tampermonkey)自动注入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值