更新记录

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

logo

基于 uni-app + Vue 3 + uview-plus 开发的跨平台音乐播放器

uni-app Vue 3 uview-plus Pinia


目录


项目介绍

若依音乐移动端 是基于 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 警告状态

音乐来源免责声明

本项目(若依音乐移动端)仅为学习与交流目的而创建,项目中所使用的音乐资源、歌词、封面图片等素材,并非用于商业用途,也不以任何形式进行传播和售卖

声明事项

  1. 音乐资源来源:本应用展示的音乐内容、歌手信息、歌曲数据等,均来源于公开互联网平台(如网易云音乐、QQ音乐、酷狗音乐、虾米音乐等),仅作技术展示演示之用

  2. 版权归属:所有音乐作品的版权均归其原始创作者/版权所有人所有。本项目不持有任何音乐资源的版权。

  3. 非商业用途:本项目严禁用于任何商业目的,包括但不限于:

    • 不得用于盈利性运营
    • 不得用于二次售卖
    • 不得用于广告宣传
    • 不得用于任何违反法律法规的用途
  4. 免责范围:因使用本项目或其中资源所产生的任何直接或间接后果(包括但不限于版权纠纷、法律诉讼等),项目作者不承担任何责任

  5. 删除请求:如任何版权所有者认为本项目中的内容侵犯了其权益,请联系我们,我们将在收到通知后 7 个工作日内 处理。

  6. 用户责任:使用者应自行承担使用本项目内容的一切责任,遵守相关法律法规,尊重原创作者的知识产权。

开源协议

本项目基于 MIT License 开源协议,使用者可自由使用、修改、分发,但需保留版权声明。


基于 uni-app + uview-plus 框架开发

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。