避免雨课堂在切换窗口时暂停视频

在疫情期间对雨课堂就久闻大名,因为不喜欢被强迫,更喜欢自由发挥的感觉,所以未得一见。最近才知道雨课堂有个“为了你好”的功能,就是把网课切换到后台的时候,视频会停止播放。甚至在桌面上并置两个窗口,把另一个窗口设置为活动时,雨课堂的视频也会暂停。

一方面不喜欢被操控的感觉,另一方面喜欢操控代码的感觉。所以,手痒打算试一试如何禁止这个贴心的特性。我平时用 firefox,这次偏偏没有找到有些贴子提到的界面,所以只好换成 Chrome。

如果我是雨课堂的前端程序员,检测窗口不活动最直接的方法是 检测鼠标离开。就从这里试,姑且一试。

1. 技术原型 设置断点,找到代码,修改

打开目标页面,就是网课那页。在 Chrome 中,按 F12 进入 [这个界面叫作什么]界面。选择 Sources。

在窗口的右侧,Event Listener Breakpoints | Mouse | mouseout 设置断点。

动一下页面,东点西点,进入离开,触发断点。鼠标点击下图中红色方框中的按钮,或者按 shift-f11快捷键,跳出当前函数几次。

直到看到下图中的代码。用双斜线注释下图中红色方框中的那一行。在本文中,以下我们把这个文件称为目标文件。

注释以后如下图所示。

Ctrl-s保存。

清除断点。

此时,在不关闭当前页面和F12的前提下,可以连续播放视频,在切换到窗口以外时视频不会被暂停。

2. 下一节课 手动修改代码

载入下一节课时,或者刷新当前页面,修改刚刚那行代码以后就可以避免视频暂停了。

载入下一节课时,不必再次设置断点。通常,F12页面不关闭,在F12d页面上显示的就是这个文件的这个位置,只是代码又刷新成没有注释的版本了。一眼就能看到那行关键代码,注释掉就完成了修改,能避免视频暂停。或者按 ctrl-shift-f 显示 search,在文本框中键入要找的代码,回车就能找到目标文件及代码所在的行。打开文件,注释那一行就可以避免视频暂停。

3. 自动 超驰

每次修改代码还是不够自动化。在写 chrome插件或者油猴脚本 自动修改js代码或变量或函数之前,还有轻量级一点并且相对自动化的对付手段。

在目标文件上鼠标右键,选择下图中靠近下方的红框所在的菜单项, Override content (超驰)。注意看靠近上方的红色方框,目标文件已经修改完成了。

浏览器会在上方菜单之下显示一段文字,并选择文件夹保存修改过的js文件。

浏览器会要求本地硬盘的权限,如下图,允许。

附:以上两条消息对近视眼丰富不友好,如果不弹出系统菜单,那个大个屏幕,根本就看不到消息的存在。

完成以上操作后,载入下一节课,或者刷新当前课程,视频播放以后不会因为切换出窗口而暂停。原理是,目标文件不从远程载入,而是从本地的 override目录中那个刚刚保存的文件载入。从下图中我们可以看到,文件不在Page中,并且右下角标记了淡紫色圆点,表示使用这个本地文件超驰目标文件。

4. 更自动 及 其他

以上方法,适用于对前端开发感兴趣的同学。如果想给非程序员的其他人使用,还需要开发成 Chrome插件,或者油猴脚本(这和自动开始下一课是两种不同功能)。我猜测在 Burp 中正则表达式匹配 js 文件内容,在线修改,可能也行。我还看到有贴子用 python 代替浏览器的角色,发送心跳信号,极短时间内就学完了。

探索原理,熟悉工具,花费的时间比循规蹈矩地学一遍还要长。不过,乐在其中。


https://younggift.net/

https://www.zhihu.com/people/yang-gui-fu-52

Leave a Reply

Your email address will not be published. Required fields are marked *