chengww 761884f23a refactor(playHistory): 持久化重写,统一防抖落盘与序列化兜底
把 playHistory 接入 utils/debouncedStorage 与 utils/persistedSong,
配合 add* 方法重构与 clearAll 同步落盘,闭合 localStorage 配额防护。

- musicHistory 类型从 SongResult 收敛到 MusicHistoryItem(精简子集),
  导出 MinifiedDjProgram、stripBase64Covers,给 podcast/playlist/album/
  podcastRadio 历史也做顶层 picUrl/coverImgUrl/coverUrl 的 base64 兜底
- serializePlayHistoryState 提取为模块级函数,给 persistedstate.serializer
  与 clearAll 同步落盘共用,避免格式漂移;isPodcast/program 字段必须
  保留——playbackController.playTrack 用 isPodcast 决定写哪条历史
- 5 个 add* 全部重写成单步 ref 重赋值,避免 splice/pop/unshift 多次
  触发 watch 与持久化;命中已有条目时累加 count + 刷新 lastPlayTime,
  picUrl/al 用新数据覆盖(封面可能换了短引用)
- clearAll 增加 flushDebouncedStorage + 同步 setItem 空状态,防止
  kill -9 落在 2s 防抖窗口里导致旧历史残留
- heatmap/index.vue 类型切到 MusicHistoryItem,移除 music.artists
  兜底(minifySong 已合并 ar/artists,只剩 ar)
2026-05-17 23:08:22 +08:00
2025-12-20 19:47:38 +08:00
2026-03-04 20:28:38 +08:00
2025-01-10 22:49:55 +08:00
2026-02-10 09:06:25 +08:00
2026-01-21 09:43:49 +08:00
2026-02-10 09:06:25 +08:00
2026-02-04 20:18:29 +08:00

🎵 Alger Music Player

Featured|HelloGitHub

项目下安装以及常用问题文档

主要功能如下

  • 🎵 音乐推荐
  • 🔐 账号登录与同步
  • 📝 功能
    • 播放历史记录
    • 歌曲收藏管理
    • 歌单 MV 排行榜 每日推荐
    • 自定义快捷键配置(全局或应用内)
  • 🎨 界面与交互
    • 沉浸式歌词显示(点击左下角封面进入)
    • 独立桌面歌词窗口
    • 明暗主题切换
    • 迷你模式
    • 状态栏控制
    • 多语言支持
  • 🎼 音乐功能
    • 支持歌单、MV、专辑等完整音乐服务
    • 音乐资源解析(基于 @unblockneteasemusic/server
    • EQ均衡器
    • 定时播放 远程控制播放 倍速播放
    • 高品质音乐
    • 音乐文件下载
    • 搜索 MV 音乐 专辑 歌单 bilibili
    • 音乐单独选择音源解析
  • 🚀 技术特性
    • 本地化服务,无需依赖在线API (基于 netease-cloud-music-api)
    • 全平台适配(Desktop & Web & Mobile Web & Android<测试> & ios<后续>

项目简介

一个第三方音乐播放器、本地服务、桌面歌词、音乐下载、最高音质

预览地址

http://music.alger.fun/

软件截图

首页白 首页黑 歌词 桌面歌词 设置页面 音乐远程控制

项目启动

npm install
npm run dev

开发文档

点击这里开发文档

赞赏

赞赏列表

微信赞赏 支付宝赞赏
WeChat QRcode
喝点咖啡继续干
Wechat QRcode
来包辣条吧~

项目统计

Stargazers over time Alt

欢迎提Issues

声明

本软件仅用于学习交流,禁止用于商业用途,否则后果自负。 希望大家还是要多多支持官方正版,此软件仅用作开发教学。

S
Description
No description provided
Readme MIT 38 MiB
Languages
Vue 52.7%
TypeScript 45.3%
HTML 0.8%
CSS 0.6%
JavaScript 0.6%