Skip to content

Releases

v2.4.1 — 播放控件与时长统计修复

Choose a tag to compare

@znc15 znc15 released this 05 Nov 15:23

播放器控件

  • 音量与音质改为同高、居中对齐的玻璃控制栏;音量滑块与百分比更清晰,极窄屏保留拖动空间。
  • 音质改为定制玻璃菜单,加入选中、悬停、键盘操作和禁用态,适配手机视口。
  • 菜单分别呈现所选音质与当前音源的实际格式、码率;支持挂载到原生全屏容器。

统计修复

  • 修正旧格式歌单缓存将真实时长全部标记为未知的问题。

  • 全部时长未知时显示“— / 暂无可估算时长”;部分覆盖显示已计入次数,真实零播放仍显示 0 分钟。

  • 增加限定历史修复工具:用事件发生前备份与当前缓存逐项核对,事务内同步事件和永久汇总,重复执行不重复累计。

  • 本站已在生产备份后完成已核实历史事件的时长纠正,线上统计与明细一致。

验收与升级

  • 243 项常规测试、2 项隔离 D1 集成、类型检查和 React / Worker / Pages / 文档构建通过。
  • 实际检查 320 / 375 / 768 / 1280px、亮暗主题、键盘选项、禁用态与切音质位置保留。
  • 数据库结构保持现有版本;历史纠正需使用本站已核实证据,不需要通用 schema 迁移。
  • 原生全屏的容器选择已通过组件测试;受控浏览器拒绝原生全屏请求,普通浏览器进入/退出操作仍待手动确认。

仅更新 master;node 继续保留 2.1.1 冻结版。

v2.4.0 — 沉浸式玻璃播放器

Choose a tag to compare

@znc15 znc15 released this 05 Nov 14:33

沉浸播放器

  • /preview 升级为播放器:桌面左侧大封面、歌曲信息与控制,右侧可搜索队列;采用封面模糊背景、玻璃控制层,手机为单列布局。
  • 底部播放条可展开回完整播放器,与页面共享唯一常驻音频引擎、进度和音量,切换路由连续播放。
  • 新增随机播放、列表循环、单曲循环、当前曲目定位及分批展示长队列;手动切歌与自然结束分别处理。
  • 支持 Media Session 系统播放/暂停/切歌/跳转;播放器空白区域可用空格播放暂停、方向键跳转 5 秒、M 静音、F 请求全屏。
  • 保留原生全屏入口及拒绝反馈,全屏期间延后自动公告,退出后继续展示。

播放可靠性与本地媒体

  • 同一曲目切换音质或续源保留播放位置,重播与切歌从头开始;保留静音初始化、迟到响应隔离与单次自动恢复。
  • 改善 HTTPS 直链和本地音频的封面占位、进度、时间与音量控件;视频保留实际画面及原生控件。
  • 补充 HLS 加载失败、一次恢复、重试和切源清理;替换本地文件后释放旧 Object URL。
  • 修复长队列搜索后的当前曲目定位,以及迷你队列从桌面缩至手机后的关闭入口。

发布说明

  • 数据库沿用 0005-persistent-playback-stats,本版无数据库结构或统计口径调整。
  • 原四平台与签名链接入口保留;Apple Music 全曲直链继续保留既定评估,等待测试环境与账号。
  • 同步 2.4.0 公告、使用说明与动画文档;仅维护 master,node 继续冻结于 2.1.1。

验证

  • 219 项自动测试通过;类型检查、React、Worker、Pages 与文档构建通过。
  • 已实际检查亮暗主题、320/375/768/1440px界面、跨页面连续播放、队列搜索与定位、切音质进度、随机/循环及本地音视频。
  • 受控浏览器拒绝原生全屏请求,已验证拒绝反馈;全屏进入/退出仍待普通浏览器手动确认,公告延期由组件测试覆盖。

v2.3.0 — 歌单详情、公告与播放统计

Choose a tag to compare

@znc15 znc15 released this 05 Nov 13:02

歌单与播放

  • 歌单、收藏和最近播放卡片支持打开详情并复制播放地址,封面保留独立播放按钮;地址显示实际到期时间,自动复制失败时选中地址供手动复制。
  • 部分歌单保留已成功获取的歌曲,展示实际纳入数量与上游总数;重新获取会重试部分结果,避免长期复用缺曲缓存。
  • 修复取消登录后迟到响应覆盖新账号、终曲结束后静音或音量失效,以及快速切歌时旧播放错误污染当前曲目的问题。

界面与公告

  • 登录弹窗增加完整进出和内容切换动画,支持减少动态效果与焦点恢复。
  • 统一平台、登录方式和分类切换条,小屏单行横向滚动;改善手机导航、长账号名称和输入错误反馈。
  • 新增顶栏公告入口,新公告首次自动展示、已读后可手动查看,播放期间打开公告继续播放。
  • 使用系统字体,移除分段网络字体依赖;损坏的播放链接提供字段级错误提示。

统计与可观测性

  • 新增持久累计有效播放请求,覆盖账号与游客,分别记录站内播放、HLS 和直链跳转;近期记录清理后累计保持。
  • 估算播放时长按事件当时的已知时长累计,未知时长单独计数;账号指标改为“已登录账号”。
  • 新增独立的近 30 天全站歌曲排行,个人常听排行按相同时间窗口独立查询。
  • 缺失指标显示未知,刷新失败显示旧结果和重试;真实零值保持为零。
  • 补充媒体授权、上游、格式、限流、流读取和取消等失败分类;完整传输校验后才累计媒体播放请求。

升级与保留项

  • 部署前备份 D1 并取得 Time Travel 书签,再执行 npm --prefix cloudflare run db:migrate -- --remote,应用 0005-persistent-playback-stats;继续沿用原 ENCRYPTION_KEY。
  • 原账号、收藏、歌单和历史统计保留。新播放累计、估算时长及精确排行从此次迁移的 startedAt 起算;解析与生成链接计数沿用原值。
  • Apple Music 全曲直链保留已选的 VRChat/AVPro 评估方案;本轮暂缓实测,等待隔离 Linux/Docker 环境、有效订阅测试账号与目标客户端。
  • 本版只更新 master;传统 Node.js 的 node 分支继续冻结于 2.1.1。

验证

  • 183 项自动测试与独立 D1 迁移集成测试通过;类型检查、React、Worker、Pages 与文档构建通过。
  • 已检查亮/暗主题及 320/375/768/1440px 布局,验证详情复制、登录取消、终曲音量、公告与登录优先等关键交互。

v2.2.0 — Cloudflare 维护版

Choose a tag to compare

@znc15 znc15 released this 05 Nov 11:28

2.2.0 — 2026-11-05

Cloudflare 维护版本

  • master 作为 Cloudflare Workers + D1 的持续维护分支,React 静态资源与 API 一起部署;传统 Node.js / Docker 版本保留在冻结的 node 分支。
  • 统一根目录开发、测试和构建命令,保留 Pages Functions 兼容入口,更新部署指南。

登录、播放与界面修复

  • 加固 QQ 扫码认证链,QQ / 酷狗 / 酷我改用受支持的登录入口,四个平台分别保存登录令牌。
  • 按平台和账号隔离私人查询缓存,切换账号时清理旧列表;修复播放器异步请求竞争与收藏分页删除后的页码回退。
  • 改善小屏输入、常驻播放器、音量与音质设置、键盘进度操作、错误重试和空状态。
  • 统一等价接口限流,补充上游请求超时与响应体预算,完善降级模式和音源刷新并发控制。

数据、部署与日志

  • 统一 D1 迁移入口,升级四平台账号结构并保留原账号、歌单、收藏和播放记录;修复远端迁移命令输出解析。
  • 修复 Cloudflare 自动构建与部署配置,限制构建文件并发,解决构建环境的 EMFILE 错误。
  • 启用 Workers Observability 持久化日志与查询参数脱敏,移除 QQ 音源失败日志中的原始播放凭据;请求采样率为 100%,Traces 保持关闭。
  • 更新相关依赖,并为后续发布增加版本及锁文件一致性检查。

升级

  • Cloudflare 部署使用 master,运行方式见 部署指南。旧 D1 升级前先备份,再执行 npm --prefix cloudflare run db:migrate -- --remote,继续沿用原有 ENCRYPTION_KEY。
  • 已完成 0004-unified-platform-schema 的数据库无需再次变更;重复运行迁移会报告已应用。
  • HLS 播放链接的短期签名位于 URL 路径,仍可能保存在日志中,请限制日志查看权限。

更早版本见 v2.1.1 Release。

完整变更:v2.1.1...v2.2.0

v2.1.1

Choose a tag to compare

@znc15 znc15 released this 26 Oct 10:57

2.1.1

新增

  • 酷狗音乐:扫码登录;免登录仍可读取公开歌单与音源
  • 酷我音乐:账号密码 / 手机短信登录
  • 站点统计:累计解析歌曲、总播放时长、使用人数与播放次数,在「关于」页展示
  • 平台能力矩阵(账号 / 我的音乐 / 播放)由后端注册表与前端能力表统一声明,测试锁定两边一致

修复

  • 切换工作台页面后内容空白:页面进入动画改用 CSS 关键帧,不再依赖 JS 逐帧推进;窗口被遮挡或系统开启「减少动态效果」时也不会停在半透明状态
  • 阻止 Cloudflare 自动注入 Web Analytics 脚本

调整

  • 「关于」页统计数字去掉解释性说明,并标注计数起点为 2.1.0
  • README 重写为简洁版,并更新工作台截图

版本

  • package.json、web/package.json、cloudflare/package.json、public/app-meta.json 同步为 2.1.1
  • cloudflare/package.json 首次带上 version 字段

完整变更:116b552...v2.1.1