# AGENTS.md ## 项目简介 MoePlayer —— 一款中文友好的开源网页视频播放器(MIT 协议),fork 自已停止维护的 ckplayer X3。支持 mp4 / flv / m3u8 / ts 等格式,点播、直播、直播回放,PC 与移动端 H5。 目标定位:中文文档 + 主流浏览器/手机 H5 支持 + 官方 Moodle media 插件(`media_moeplayer`,独立仓库)。 **注意**:当前处于改造阶段 2(改名 + 模块化)。改名已完成:目录 `moeplayer/`、全局变量/API 为 `MoePlayer`(语言包全局变量 `moeplayerLanguage`);单文件已拆分为 ES Module(源码在 `src/`,经 rollup 打包为 UMD 产物)。**主函数 `moeplayerEmbed` 尚未内部拆分**,仍是一个 ~6400 行的巨大函数,位于 `src/core/moeplayerEmbed.js`。 ## 目录结构 ``` ├── index.html # 演示/测试页(含 API 调用示例) ├── package.json # npm 工程化入口,依赖与构建脚本 ├── rollup.config.js # rollup 配置:src/ 打包为 UMD 产物 + terser 压缩 ├── scripts/copy-libs.js # 构建脚本第二步:从 node_modules 拷贝运行时库 ├── src/ # 播放器源码(ES Module,2026-07 由单文件拆分而来) │ ├── index.js # 入口:export default moeplayerEmbed │ ├── language.js # 默认中文语言包 │ ├── defaults.js # videoObjectDefault 默认配置 │ ├── core/moeplayerEmbed.js # 主函数,【整体搬自旧单文件,内部未拆分,逻辑零改动】 │ └── utils/ # 工具函数:type/dom/format/net/cookie/path ├── moeplayer/ # 播放器本体,部署时整个上传到网站 │ ├── js/moeplayer.js # UMD 产物,【由 npm run build 自动生成,勿手改】 │ ├── js/moeplayer.min.js # 压缩版,同上 │ ├── css/moeplayer.css # 默认皮肤;另有 moeplayer.red.css、moeplayer.ixigua.css │ ├── css/images/ # 皮肤图片资源 │ ├── language/ # 语言包:zh.cn.js(默认内嵌)、zh.hk.js、en.js │ ├── hls.js/ # hls.min.js,【由构建从 npm 包拷贝,勿手改】 │ ├── flv.js/ # flv.min.js,同上(flv.js 已停维护,阶段4将移除) │ └── mpegts.js/ # mpegts.js,同上 └── video/ # 演示用视频与封面 ``` ## 构建与依赖 - 安装:`npm install` - 构建:`npm run build`(即 `rollup -c && node scripts/copy-libs.js`) —— 做两件事: 1. rollup 把 `src/` 的 ES Module 打包为 UMD:`moeplayer/js/moeplayer.js`,并经 @rollup/plugin-terser 生成 `moeplayer.min.js`(保留 `软件名称|版权` 头部注释) 2. `scripts/copy-libs.js` 从 node_modules 拷贝 hls.js / flv.js / mpegts.js 的产物及 LICENSE 到 `moeplayer/` 对应目录 - **改动 `src/` 后必须执行 `npm run build`** 重新生成两个产物;`moeplayer/js/` 下两个 js 均为生成物,勿手改 - 升级依赖:改 `package.json` 版本号后 `npm install && npm run build` - 运行时机制:播放器用 `getPath()` 定位自身所在目录,按需动态 `