自动播放视频扩展 v1 base on imooc
程序内容
- 程序概述
前置操作:脚本使用前置环境
此项目是一个浏览器扩展,基于自动刷课程序扩展,开发chrome扩展程序,旨在用于在网站上实现相似功能。其核心功能是自动播放视频并在视频播放完毕后自动播放下一个视频。用户可以通过扩展的按钮启用或禁用此功能。项目目标是提供一种便捷的自动播放体验,自动化完成用户的连续观看需求。
- 程序目标
用户在chrome安装此插件后并开启后,此插件会获取视频的状态,监控视频的播放、暂停等信息,检测到视频暂停会自动继续播放,并在视频结束后搜索下一节视频并自动切换到下一个视频。所有视频播放完成后结束。
- 程序结构与主要功能
- 程序功能
- 自动播放视频:当用户访问支持自动播放的页面时,视频会在结束后自动播放下一个视频,提供无缝观看体验。
- 控制功能启用/禁用:用户可以通过扩展中的按钮控制自动播放功能的启用与禁用。按钮会根据当前状态动态显示文本(“开启自动播放”或“关闭自动播放”)。
- 状态存储:自动播放的状态通过
chrome.storage
存储,确保状态在浏览器会话间持续有效。 - 页面加载和状态同步:扩展脚本能够在页面完全加载后启动自动播放,并确保页面中的视频播放状态同步到扩展的控制面板。
- 程序结构
- 消息机制:扩展的
popup.js
、content.js
和background.js
文件通过chrome.runtime.sendMessage
和chrome.runtime.onMessage
实现状态同步。通过发送和接收消息,控制自动播放的启用与禁用。 - 按钮状态更新:扩展提供的按钮根据存储中的
isEnabled
状态动态更新按钮文本,便于用户了解当前功能状态。 - 错误处理:加入了错误处理逻辑,当自动播放失败时,按钮状态不会改变,用户得到提示以避免错误的用户体验。
- 性能优化:使用
chrome.storage.onChanged
监听器自动同步状态,而不是在每次操作时手动发送消息,减少了不必要的消息传递,提高了性能和代码的可维护性。 - 自动播放逻辑:
autoPlayVideo()
:监听视频的播放状态,自动播放当前视频或切换到下一个视频。 getNextVideo()
:根据页面中视频的顺序,找出下一个视频。- 刷新页面后的恢复功能:当页面刷新时,扩展会自动重新注入脚本,并根据页面加载状态恢复自动播放逻辑。
- 消息机制:扩展的
- 后续改进计划 To Be Continue
- 2025.1.16
- 事件监听紊乱:需要在优化时间监听的流程,确定监听的生命周期,避免性能浪费,确保没有多余的资源消耗。
- 加载优化与参数优化:目前部分加载流程使用固定延时函数,后续使用页面监听函数优化加载流程,并调整延时参数。
- 并发逻辑问题:目前程序没有考虑到并发问题,如果两个网页同时使用此脚本可能存在冲突,未测试。
- 消息机制紊乱:目前多个文件进行跨文件通信时存在消息机制紊乱的风险,为了同步信息可能出现逻辑错误,后续需要排查消息机制的风险并且尝试使用chrome.storage.onChanged来统一管理插件状态(可能会导致并发问题)。
- 程序优化:逻辑优化。bug解决,已经更多平台适配。
- 平台支持
- 慕课网IMOOC
- 更新日志
- 2025.1.16更新初版功能V1.0