更新记录
1.0.0(2026-07-27) 下载此版本
项目介绍
若依音乐移动端 是基于 uni-app 框架开发的跨平台音乐播放器应用,可同时发布到 H5、App(Android/iOS)和各大小程序平台。
功能特性:
平台兼容性
uni-app(5.0)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| - | √ | √ | - | √ | - | - | - | - |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | - | - | - | - | - | - | - | - | - | - | - |
若依音乐 - 移动端 App
基于 uni-app + Vue 3 + uview-plus 开发的跨平台音乐播放器
目录
项目介绍
若依音乐移动端 是基于 uni-app 框架开发的跨平台音乐播放器应用,可同时发布到 H5、App(Android/iOS)和各大小程序平台。
功能特性:
- 🎵 音乐播放:支持在线播放、本地缓存、播放列表管理
- 🔍 智能搜索:歌曲搜索、歌手搜索
- 📊 热门推荐:热门歌曲排行榜
- 🎤 歌手浏览:歌手列表、歌手详情、歌手热门歌曲
- 📂 歌曲分类:按类型/风格分类浏览
- ❤️ 收藏功能:收藏歌曲、取消收藏
- 💬 评论互动:评论、点赞、删除评论
- 📱 多平台支持:H5、App、微信小程序等
- 🎨 精美 UI:Spotify 风格暗色主题设计
目录结构
uniapp-music/
├── src/
│ ├── api/ # API 接口
│ │ ├── auth.js # 认证相关接口
│ │ ├── music.js # 音乐相关接口
│ │ └── home.js # 首页接口
│ ├── common/ # 公共模块
│ │ ├── locales/ # 国际化
│ │ │ ├── en.js # 英文
│ │ │ └── zh.js # 中文
│ │ ├── styles/ # 样式
│ │ │ └── music-theme.scss # 音乐主题样式
│ │ ├── api.js # 请求封装
│ │ ├── config.js # 基础配置
│ │ ├── mixin.js # 混入
│ │ └── props.js # 组件属性定义
│ ├── components/ # 公共组件
│ │ ├── music/
│ │ │ └── MiniPlayer.vue # 迷你播放器
│ │ ├── page-nav/
│ │ │ └── page-nav.vue # 页面导航组件
│ │ └── PlayListPopup.vue # 播放列表弹窗
│ ├── pages/ # 页面
│ │ ├── home/ # 首页
│ │ │ └── home.vue
│ │ ├── song-detail/ # 歌曲详情
│ │ │ └── song-detail.vue
│ │ ├── search/ # 搜索
│ │ │ └── index.vue
│ │ ├── singer/ # 歌手
│ │ │ ├── list.vue
│ │ │ └── detail.vue
│ │ ├── hot-music/ # 热门音乐
│ │ │ └── hot-music.vue
│ │ ├── song-type/ # 歌曲分类
│ │ │ ├── song-type.vue
│ │ │ └── type-detail.vue
│ │ ├── login/ # 登录
│ │ │ ├── index.vue
│ │ │ └── code.vue
│ │ ├── mine/ # 个人中心
│ │ │ ├── mine.vue
│ │ │ ├── profile-edit.vue
│ │ │ ├── my-collection.vue
│ │ │ ├── my-comment.vue
│ │ │ └── tour-record.vue
│ │ └── example/ # 示例页面
│ ├── store/ # 状态管理
│ │ ├── index.js # Pinia Store
│ │ └── player.js # 播放器状态
│ ├── static/ # 静态资源
│ │ ├── images/ # 图片资源
│ │ │ ├── tabbar/ # TabBar 图标
│ │ │ ├── avatar.png # 默认头像
│ │ │ └── icon_*.png # 播放器图标
│ │ └── uview/ # uview 静态资源
│ ├── uni_modules/ # uni 模块
│ │ └── uview-plus/ # uview-plus 组件库
│ ├── util/ # 工具函数
│ │ ├── request/
│ │ │ ├── index.js # 请求封装
│ │ │ └── interceptors.js # 拦截器
│ │ └── disablePullToRefresh.js
│ ├── utils/
│ │ └── app-auth.js # 认证工具
│ ├── App.vue # 应用根组件
│ ├── main.ts # 应用入口
│ ├── pages.json # 页面配置
│ ├── manifest.json # 应用配置
│ ├── theme.json # 主题配置
│ └── uni.scss # 全局 SCSS 变量
├── DESIGN.md # 设计规范文档
├── AGENTS.md # AI Agent 指南
├── vite.config.ts # Vite 配置
├── tsconfig.json # TypeScript 配置
├── package.json # 依赖配置
└── index.html # HTML 入口
技术栈与插件
核心框架
| 技术 | 版本 | 说明 |
|---|---|---|
| uni-app | 3.0.0 | 跨平台开发框架 |
| Vue | 3.4.21 | 渐进式 JavaScript 框架 |
| TypeScript | 5.0.0 | 类型安全的 JavaScript |
| Vite | 5.2.8 | 下一代前端构建工具 |
| Pinia | 2.3.1 | Vue 状态管理 |
| UnoCSS | 0.61.1 | 原子化 CSS 引擎 |
| uview-plus | 3.0 | UI 组件库 |
主要依赖
| 插件 | 版本 | 说明 |
|---|---|---|
| @dcloudio/uni-app | 3.0.0 | uni-app 核心 |
| @dcloudio/uni-app-harmony | 3.0.0 | 鸿蒙平台支持 |
| @dcloudio/uni-app-plus | 3.0.0 | App 平台支持 |
| @dcloudio/uni-h5 | 3.0.0 | H5 平台支持 |
| @dcloudio/uni-mp-weixin | 3.0.0 | 微信小程序支持 |
| @dcloudio/uni-mp-alipay | 3.0.0 | 支付宝小程序 |
| @dcloudio/uni-mp-baidu | 3.0.0 | 百度小程序 |
| @dcloudio/uni-mp-qq | 3.0.0 | QQ 小程序 |
| @dcloudio/uni-mp-toutiao | 3.0.0 | 头条小程序 |
| @dcloudio/uni-mp-kuaishou | 3.0.0 | 快手小程序 |
| @dcloudio/uni-mp-jd | 3.0.0 | 京东小程序 |
| @dcloudio/uni-mp-lark | 3.0.0 | 飞书小程序 |
| @dcloudio/uni-mp-xhs | 3.0.0 | 小红书小程序 |
| pinia-plugin-persistedstate | 3.2.2 | Pinia 持久化 |
| vue-i18n | 9.1.9 | 国际化支持 |
| vuex | 4.1.0 | Vuex 状态管理(兼容) |
开发依赖
| 插件 | 版本 | 说明 |
|---|---|---|
| @dcloudio/uni-automator | 3.0.0 | 自动化测试 |
| @dcloudio/uni-cli-shared | 3.0.0 | CLI 共享模块 |
| @dcloudio/uni-stacktracey | 3.0.0 | 错误追踪 |
| @dcloudio/vite-plugin-uni | 3.0.0 | Vite 插件 |
| @unocss/transformer-directives | 0.61.9 | UnoCSS 指令转换 |
| unocss-preset-weapp | 0.61.1 | 小程序预设 |
| sass | 1.63.2 | CSS 预处理器 |
| typescript | 5.0.0 | TypeScript 编译 |
页面说明
主要页面
| 页面 | 路径 | 说明 |
|---|---|---|
| 首页 | pages/home/home |
推荐歌曲、热门歌曲、歌曲分类入口 |
| 歌曲详情 | pages/song-detail/song-detail |
歌曲播放、歌词、收藏、评论 |
| 搜索 | pages/search/index |
歌曲/歌手搜索 |
| 热门音乐 | pages/hot-music/hot-music |
热门歌曲排行榜 |
| 歌手列表 | pages/singer/list |
歌手浏览列表 |
| 歌手详情 | pages/singer/detail |
歌手信息及代表歌曲 |
| 歌曲分类 | pages/song-type/song-type |
歌曲类型列表 |
| 分类详情 | pages/song-type/type-detail |
类型下的歌曲列表 |
用户中心
| 页面 | 路径 | 说明 |
|---|---|---|
| 登录(密码) | pages/login/index |
账号密码登录 |
| 登录(验证码) | pages/login/code |
短信验证码登录 |
| 个人中心 | pages/mine/mine |
用户信息、功能入口 |
| 编辑资料 | pages/mine/profile-edit |
修改用户资料 |
| 我的收藏 | pages/mine/my-collection |
收藏的歌曲列表 |
| 我的评论 | pages/mine/my-comment |
发表过的评论 |
| 游览记录 | pages/mine/tour-record |
最近播放记录 |
TabBar
| Tab | 页面 | 图标 |
|---|---|---|
| 首页 | pages/home/home |
tabbar_1.png |
| 我的 | pages/mine/mine |
tabbar_2.png |
组件说明
业务组件
| 组件 | 路径 | 说明 |
|---|---|---|
MiniPlayer |
components/music/MiniPlayer.vue |
迷你播放器,显示在底部 |
PlayListPopup |
components/PlayListPopup.vue |
播放列表弹窗 |
page-nav |
components/page-nav/page-nav.vue |
页面导航(返回/首页) |
uview-plus 组件
uview-plus 提供了丰富的 UI 组件,已通过 easycom 自动注册,可直接使用:
<template>
<up-button text="按钮"></up-button>
<up-input v-model="value" placeholder="请输入"></up-input>
<up-image :src="imageUrl"></up-image>
<up-icon name="home"></up-icon>
</template>
常用组件:
| 组件 | 说明 |
|---|---|
up-button |
按钮 |
up-input |
输入框 |
up-image |
图片 |
up-icon |
图标 |
up-popup |
弹出层 |
up-action-sheet |
操作菜单 |
up-loading |
加载提示 |
up-toast |
消息提示 |
up-swiper |
轮播图 |
up-grid |
宫格布局 |
up-cell |
单元格 |
up-swipe-action |
滑动操作 |
up-message-input |
验证码输入 |
up-tabbar |
底部导航栏 |
Pinia Store
| Store | 路径 | 说明 |
|---|---|---|
playerStore |
store/player.js |
播放器状态(播放列表、当前歌曲、播放模式) |
appStore |
store/index.js |
应用状态(用户信息、配置) |
接口文档
本应用对接后端 ruoyi-app 服务,完整的接口文档请参考:
API 基础配置
// src/common/config.js
export default {
baseUrl: 'http://localhost:8090', // 开发环境
// baseUrl: 'https://www.xz-music.online/prod-app', // 生产环境
}
接口模块说明
认证接口
| 接口 | 方法 | 路径 | 说明 |
|---|---|---|---|
| 发送验证码 | POST | /app/sendCode |
发送短信验证码 |
| 登录 | POST | /app/login |
验证码登录 |
| 获取用户信息 | GET | /app/getInfo |
获取当前用户信息 |
| 更新用户信息 | POST | /app/updateUserInfo |
更新用户资料 |
音乐接口
| 接口 | 方法 | 路径 | 说明 |
|---|---|---|---|
| 歌曲列表 | GET | /app/song/list |
分页查询歌曲 |
| 歌曲详情 | GET | /app/song/{id} |
获取歌曲详情 |
| 热门歌曲 | GET | /app/song/rank/hot |
热门排行榜 |
| 歌曲分类 | GET | /app/songType/all |
所有歌曲类型 |
| 歌手列表 | GET | /app/singer/all |
歌手列表 |
| 歌手详情 | GET | /app/singer/{id} |
歌手信息 |
互动接口
| 接口 | 方法 | 路径 | 说明 |
|---|---|---|---|
| 歌曲访问 | POST | /app/song/{id}/visit |
记录访问 |
| 访问数统计 | GET | /app/song/{id}/visit/count |
查询访问数 |
| 收藏状态 | GET | /app/song/{id}/favorite/info |
查询收藏状态 |
| 添加收藏 | POST | /app/song/{id}/favorite/add |
收藏歌曲 |
| 取消收藏 | POST | /app/song/{id}/favorite/cancel |
取消收藏 |
| 歌曲评论 | GET | /app/song/{id}/comments |
评论列表 |
| 发表评论 | POST | /app/song/{id}/comment |
添加评论 |
| 评论点赞 | POST | /app/song/comment/{id}/like/add |
点赞 |
| 取消点赞 | POST | /app/song/comment/{id}/like/cancel |
取消点赞 |
| 删除评论 | POST | /app/song/comment/{id}/delete |
删除评论 |
播放列表接口
| 接口 | 方法 | 路径 | 说明 |
|---|---|---|---|
| 我的播放列表 | GET | /app/song/playList/list |
获取播放列表 |
| 批量添加 | POST | /app/song/playList/batchAdd |
添加歌曲到列表 |
| 清空列表 | POST | /app/song/playList/clear |
清空播放列表 |
| 移除歌曲 | POST | /app/song/playList/{id}/song/{songId}/remove |
移除歌曲 |
| 下一首 | GET | /app/song/playList/next |
获取下一首 |
| 上一首 | GET | /app/song/playList/prev |
获取上一首 |
用户中心接口
| 接口 | 方法 | 路径 | 说明 |
|---|---|---|---|
| 我的收藏 | GET | /app/song/user/favorites |
收藏列表 |
| 最近播放 | GET | /app/song/user/recent |
最近播放记录 |
| 我的评论 | GET | /app/song/user/comments |
评论列表 |
文件上传接口
| 接口 | 方法 | 路径 | 说明 |
|---|---|---|---|
| 单文件上传 | POST | /app/minio/upload |
上传单文件 |
| 分片上传 | POST | /app/minio/uploadChunk |
分片上传 |
| 合并分片 | POST | /app/minio/merge |
合并分片 |
开发与部署
环境要求
- Node.js >= 16
- npm >= 8 或 pnpm >= 7
安装依赖
# 使用 npm
npm install
# 或使用 pnpm(推荐)
pnpm install
本地开发
# H5 模式
npm run dev:h5
# App 模式(需 HBuilderX)
npm run dev:app
# 微信小程序
npm run dev:mp-weixin
# 支付宝小程序
npm run dev:mp-alipay
# 百度小程序
npm run dev:mp-baidu
构建发布
# 构建 H5
npm run build:h5
# 构建 App Android
npm run build:app-android
# 构建 App iOS
npm run build:app-ios
# 构建微信小程序
npm run build:mp-weixin
# 构建支付宝小程序
npm run build:mp-alipay
# 构建百度小程序
npm run build:mp-baidu
配置说明
编辑 src/common/config.js:
export default {
baseUrl: 'http://localhost:8090', // 后端 API 地址
}
编辑 src/pages.json 配置页面路由和 TabBar。
编辑 src/manifest.json 配置应用信息(名称、图标、版本等)。
设计规范
本项目采用 Spotify 风格暗色主题设计,详细规范请参考 DESIGN.md。
核心设计原则
- 🎨 暗色沉浸主题:近黑色调
#121212~#1f1f1f - 🟢 品牌绿色:
#1ed760作为主色调 - ⚫ 内容优先:UI 隐入背景,让专辑封面成为色彩主体
- 🎯 触控优化:圆角按钮、圆形播放控制
- 📱 移动端优先:针对触摸操作优化
颜色规范
| 角色 | 颜色 | 用途 |
|---|---|---|
| 主品牌色 | #1ed760 |
播放按钮、激活状态 |
| 最深背景 | #121212 |
页面背景 |
| 深色表面 | #181818 |
卡片、容器 |
| 中等深色 | #1f1f1f |
按钮背景 |
| 主文本 | #ffffff |
标题、正文 |
| 次文本 | #b3b3b3 |
标签、描述 |
| 错误色 | #f3727f |
错误状态 |
| 警告色 | #ffa42b |
警告状态 |
音乐来源免责声明
本项目(若依音乐移动端)仅为学习与交流目的而创建,项目中所使用的音乐资源、歌词、封面图片等素材,并非用于商业用途,也不以任何形式进行传播和售卖。
声明事项
-
音乐资源来源:本应用展示的音乐内容、歌手信息、歌曲数据等,均来源于公开互联网平台(如网易云音乐、QQ音乐、酷狗音乐、虾米音乐等),仅作技术展示演示之用。
-
版权归属:所有音乐作品的版权均归其原始创作者/版权所有人所有。本项目不持有任何音乐资源的版权。
-
非商业用途:本项目严禁用于任何商业目的,包括但不限于:
- 不得用于盈利性运营
- 不得用于二次售卖
- 不得用于广告宣传
- 不得用于任何违反法律法规的用途
-
免责范围:因使用本项目或其中资源所产生的任何直接或间接后果(包括但不限于版权纠纷、法律诉讼等),项目作者不承担任何责任。
-
删除请求:如任何版权所有者认为本项目中的内容侵犯了其权益,请联系我们,我们将在收到通知后 7 个工作日内 处理。
-
用户责任:使用者应自行承担使用本项目内容的一切责任,遵守相关法律法规,尊重原创作者的知识产权。
开源协议
本项目基于 MIT License 开源协议,使用者可自由使用、修改、分发,但需保留版权声明。
基于 uni-app + uview-plus 框架开发

收藏人数:
下载插件并导入HBuilderX
下载插件ZIP
赞赏(0)
下载 0
赞赏 0
下载 12459826
赞赏 1935
赞赏
京公网安备:11010802035340号