🎧
完整播放流程
搜索 → 试听列表 → 播放器 → 歌词滚动,开箱即用的完整音乐体验
搜索 → 试听列表 → 播放器 → 歌词滚动,开箱即用的完整音乐体验
支持用户导入自定义音乐源脚本(musicUrl / lyric / pic 等 action)
本地缓存 → 自定义源 → 搜索源 → 跨源匹配,层层兜底不落空
内存 / 持久化 / 在途请求共享,列表滚动不卡顿
列表循环 / 随机 / 顺序 / 单曲循环,随心切换
Canvas 频谱随歌曲节奏脉冲跳动,播放淡入、暂停淡出
古诗词一言 API,开机即见诗意
防抖合并落盘、图片并发控制、Canvas 路径合并绘制,旧手机也流畅
一个基于 uni-app 的插件式音乐播放器,兼容 LX Music 用户导入源脚本协议,一套代码同时运行于 H5 与 Android / iOS App。
Star Music 是 LX Music 移动版的 uni-app 迁移项目。它提供插件运行框架与播放功能,不直接存储、提供任何音乐源文件。用户通过自行导入、启用合规的自定义源脚本获取音乐相关数据,项目旨在为开发者提供跨端应用技术实践与学习案例。
| 层 | 技术 |
|---|---|
| 框架 | uni-app(Vue 3 + Vite 5) |
| 状态 | 事件总线 + 本地存储(uni.setStorageSync) |
| 播放 | uni.createInnerAudioContext |
| 源执行 | JS 沙箱(new Function 隔离作用域,注入 globalThis.lx) |
| 可视化 | Canvas 2D(uni.createCanvasContext) |
| 加密工具 | 纯 JS 实现 AES / MD5 / RSA / SHA1 / Base64(供源脚本 lx.utils 使用) |
npm install
npm run dev:h5
使用 HBuilderX 导入项目,运行到手机 / 模拟器即可。
提示:内置源仅提供数据查询(搜索 / 热搜 / 榜单),播放 URL / 歌词 / 封面由自定义源脚本提供。
├── pages/ # 页面(启动页/搜索/歌单/设置/播放器)
├── components/ # 组件(搜索栏/列表/播放栏/图标/自定义源导入)
├── common/ # 核心模块(播放器/音乐源/歌单/事件/设置)
│ ├── music-sdk/ # 内置搜索源 SDK(kw/kg/tx/wy/mg)
│ └── user-api/ # 自定义源引擎(沙箱 + API 执行器)
├── static/ # 静态资源(图标/TabBar/SVG)
├── scripts/ # 资源生成脚本
├── pages.json # 页面路由与 TabBar 配置
└── manifest.json # 应用配置
本项目源代码遵循 GPL-3.0,仅授权用户对项目进行学习、修改与二次开发,不包含任何音乐数据相关授权。详情请参阅 LICENSE 文件,使用前请务必阅读许可条款。
欢迎开发者贡献代码与反馈建议,贡献内容需符合以下要求: