From be445f28991bdcf37e438e308c3e044874cb38ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E9=98=B3?= Date: Tue, 21 Jul 2026 16:43:51 +0800 Subject: [PATCH] =?UTF-8?q?=E9=98=B6=E6=AE=B54:=E6=A0=BC=E5=BC=8F=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E8=AF=86=E5=88=AB=20+=20flv.js=20=E6=9B=BF=E6=8D=A2?= =?UTF-8?q?=E4=B8=BA=20mpegts.js=20+=20=E7=A7=BB=E5=8A=A8=E7=AB=AF=205=20?= =?UTF-8?q?=E9=A1=B9=E4=BF=AE=E5=A4=8D=20+=20=E8=87=AA=E5=8A=A8=E5=8C=96?= =?UTF-8?q?=E5=86=92=E7=83=9F=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 按 URL 扩展名自动识别插件(.m3u8→hls.js,.flv/.ts/.m2ts→mpegts.js),iOS 上 m3u8 仍走原生 HLS - flv 播放改由 mpegts.js 承担,移除 flv.js 依赖,plug:'flv.js' 保留兼容别名 - 修复 plug:'dash.js' 调用不存在函数的死代码 bug - mpegts 能力判断由 mseLivePlayback 放宽为 isSupported()(修复部分浏览器点播被误杀) - 移动端:iOS 原生全屏状态同步、iPad/iPod UA 识别、X5 同层播放属性、进度/音量条触摸拖动、触摸坐标滚动偏移修正 - 新增 Playwright 冒烟测试(npm test)与支持 Range 的本地服务器(npm run serve) - 文档说明:测试禁用 python http.server(不支持 Range,mp4 无法 seek) --- AGENTS.md | 16 +-- README.md | 9 +- moeplayer/flv.js/LICENSE | 202 -------------------------------- moeplayer/flv.js/flv.min.js | 10 -- moeplayer/flv.js/flv.min.js.map | 1 - moeplayer/js/moeplayer.js | 134 +++++++++++++++++---- moeplayer/js/moeplayer.min.js | 2 +- package-lock.json | 59 ++++++++-- package.json | 6 +- scripts/copy-libs.js | 3 +- scripts/serve.js | 43 +++++++ scripts/smoke.test.js | 81 +++++++++++++ src/core/moeplayerEmbed.js | 126 +++++++++++++++++--- src/utils/net.js | 8 +- 14 files changed, 420 insertions(+), 280 deletions(-) delete mode 100644 moeplayer/flv.js/LICENSE delete mode 100644 moeplayer/flv.js/flv.min.js delete mode 100644 moeplayer/flv.js/flv.min.js.map create mode 100644 scripts/serve.js create mode 100644 scripts/smoke.test.js diff --git a/AGENTS.md b/AGENTS.md index 7824a86..8406633 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -33,8 +33,7 @@ MoePlayer —— 一款中文友好的开源网页视频播放器(MIT 协议 │ ├── css/moeplayer.ixigua.css # 西瓜皮肤(浅色),同上 │ ├── 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,同上 +│ └── mpegts.js/ # mpegts.js,同上(flv 播放也基于它,flv.js 已于阶段4移除) └── video/ # 演示用视频与封面 ``` @@ -44,23 +43,26 @@ MoePlayer —— 一款中文友好的开源网页视频播放器(MIT 协议 - 构建:`npm run build`(即 `rollup -c && node scripts/build-css.js && node scripts/copy-libs.js`) —— 做三件事: 1. rollup 把 `src/` 的 ES Module 打包为 UMD:`moeplayer/js/moeplayer.js`,并经 @rollup/plugin-terser 生成 `moeplayer.min.js`(保留 `软件名称|版权` 头部注释) 2. `scripts/build-css.js` 把 `src/css/base.css` 与各主题(`src/css/themes/*.css`)拼接为自包含的 `moeplayer/css/moeplayer[.red|.ixigua].css`(加版权注释头,用户只引一个文件,无 @import) - 3. `scripts/copy-libs.js` 从 node_modules 拷贝 hls.js / flv.js / mpegts.js 的产物及 LICENSE 到 `moeplayer/` 对应目录 + 3. `scripts/copy-libs.js` 从 node_modules 拷贝 hls.js / mpegts.js 的产物及 LICENSE 到 `moeplayer/` 对应目录 - **改动 `src/` 后必须执行 `npm run build`** 重新生成产物;`moeplayer/js/` 与 `moeplayer/css/` 下的 js、css 均为生成物,勿手改 - 皮肤机制:全部主题相关值是 CSS 自定义属性(`--moe-*`),定义在 `.moeplayer, .moeplayer-menu, .moeplayer-error` 作用域(菜单/错误框挂在 body 下);按钮图标为 SVG data-URI + CSS mask,颜色跟随 `--moe-icon-color`,不再使用雪碧图 PNG;换肤=覆盖变量,新增主题=在 `src/css/themes/` 加一个变量文件并登记到 `scripts/build-css.js` 的 themes 清单 - 升级依赖:改 `package.json` 版本号后 `npm install && npm run build` -- 运行时机制:播放器用 `getPath()` 定位自身所在目录,按需动态 `