1 Star 3 Fork 0

MAOFU / 小程序-云音乐

Create your Gitee Account
Explore and code with more than 12 million developers,Free private repositories !:)
Sign up
Clone or Download
contribute
Sync branch
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README
MIT

在线文档

云音乐 (yuque.com)

简介

在数字化时代,音乐不再仅仅是一种娱乐方式,它已经成为我们生活中不可或缺的一部分。无论是放松身心、激发创造力,还是与朋友分享喜悦,音乐都有着不可比拟的力量。现在,一个全新的微信小程序项目——“云音乐”为您带来了发现音乐的全新方式。

主要功能特点

  1. 音乐搜索和播放: 通过云音乐,您可以轻松搜索和播放数百万首歌曲,包括最新的热门单曲和经典老歌。
  2. 个人化推荐: 云音乐会根据您的听歌习惯和喜好向您推荐新音乐,让您不断发现新的音乐宝藏。
  3. 歌词同步显示: 想要跟着歌词一起唱?云音乐会将歌词实时同步显示,让您更深入地感受音乐的魅力。
  4. 创建播放列表: 您可以轻松创建和管理自己的播放列表,根据心情或场合随时切换不同的音乐列表。
  5. 开源项目: 云音乐是一个开源项目,您可以自由查看和修改其源代码,根据自己的需求进行定制。
  6. **使用开源API接口:**云音乐使用了开源的api接口,可以运行在node.js等服务端中,你可以轻松的部署自己的接口服务器。
  7. **视频播放器:**你可以观看歌曲MV等视频。
  8. 歌单中心,视频中心,电台中心,排行榜,搜索中心,用户收藏,用户观看记录...

主要页面介绍:

详情页面介绍:

播放器功能介绍:

技术栈

技术名 功能 官网
原生微信小程序 开发微信小程序 微信开放文档
TDesign UI组件库 TDesign
Sass css预处理器 Sass: Syntactically Awesome Style Sheets
mobx-miniprogram 全局状态管理 mobx-miniprogram

视频预览

https://www.bilibili.com/video/BV1rK4y1w7m6

图片预览

登录

Screenshot_2023-09-06-16-02-40-878_com.tencent.mm.jpg
Screenshot_2023-09-06-16-03-25-162_com.tencent.mm.jpg

首页

Screenshot_2023-09-06-15-41-14-271_com.tencent.mm.jpg
Screenshot_2023-09-06-16-10-31-838_com.tencent.mm.jpg

搜索中心

Screenshot_2023-09-06-15-41-56-070_com.tencent.mm.jpg
Screenshot_2023-09-06-15-46-41-398_com.tencent.mm.jpg
Screenshot_2023-09-06-15-43-13-842_com.tencent.mm.jpg
Screenshot_2023-09-06-15-43-30-766_com.tencent.mm.jpg
Screenshot_2023-09-06-15-43-48-286_com.tencent.mm.jpg
Screenshot_2023-09-06-15-44-43-278_com.tencent.mm.jpg
Screenshot_2023-09-06-15-45-11-496_com.tencent.mm.jpg
Screenshot_2023-09-06-15-46-10-907_com.tencent.mm.jpg

每日推荐

Screenshot_2023-09-06-16-08-10-700_com.tencent.mm.jpg

歌单中心

Screenshot_2023-09-06-16-11-53-556_com.tencent.mm.jpg
Screenshot_2023-09-06-16-12-33-298_com.tencent.mm.jpg

排行榜

Screenshot_2023-09-06-16-14-40-045_com.tencent.mm.jpg

电台中心

Screenshot_2023-09-06-16-15-44-937_com.tencent.mm.jpg
Screenshot_2023-09-06-16-16-09-102_com.tencent.mm.jpg

视频中心

Screenshot_2023-09-06-16-20-59-848_com.tencent.mm.jpg
Screenshot_2023-09-06-16-21-34-472_com.tencent.mm.jpg

个人中心

Screenshot_2023-09-06-16-22-48-608_com.tencent.mm.jpg
Screenshot_2023-09-06-16-23-08-571_com.tencent.mm.jpg

最近播放

Screenshot_2023-09-06-16-23-55-422_com.tencent.mm.jpg
Screenshot_2023-09-06-16-24-16-889_com.tencent.mm.jpg
Screenshot_2023-09-06-16-25-15-096_com.tencent.mm.jpg
Screenshot_2023-09-06-16-25-39-147_com.tencent.mm.jpg

我的收藏

Screenshot_2023-09-06-16-30-11-973_com.tencent.mm.jpg
Screenshot_2023-09-06-16-30-50-908_com.tencent.mm.jpg
Screenshot_2023-09-06-16-30-56-899_com.tencent.mm.jpg
Screenshot_2023-09-06-16-31-42-347_com.tencent.mm.jpg

编辑资料

Screenshot_2023-09-06-16-36-18-634_com.tencent.mm.jpg
Screenshot_2023-09-06-16-34-46-944_com.tencent.mm.jpg
Screenshot_2023-09-06-16-34-56-834_com.tencent.mm.jpg
Screenshot_2023-09-06-16-34-50-373_com.tencent.mm.jpg

详情信息展示

播放列表页

Screenshot_2023-09-06-16-46-07-789_com.tencent.mm.jpg
Screenshot_2023-09-06-16-41-09-074_com.tencent.mm.jpg

歌单/电台 展示页

Screenshot_2023-09-06-16-48-47-385_com.tencent.mm.jpg
Screenshot_2023-09-06-16-50-23-349_com.tencent.mm.jpg

评论区

Screenshot_2023-09-06-16-52-28-426_com.tencent.mm.jpg
Screenshot_2023-09-06-16-52-45-662_com.tencent.mm.jpg
Screenshot_2023-09-06-16-53-07-010_com.tencent.mm.jpg
Screenshot_2023-09-06-16-53-56-769_com.tencent.mm.jpg

播放器页面

音乐播放器

Screenshot_2023-09-06-17-04-20-984_com.tencent.mm.jpg
Screenshot_2023-09-06-17-01-04-748_com.tencent.mm.jpg
Screenshot_2023-09-06-17-06-27-179_com.tencent.mm.jpg
Screenshot_2023-09-06-16-59-52-960_com.tencent.mm.jpg

视频播放器

Screenshot_2023-09-06-17-08-59-806_com.tencent.mm.jpg
Screenshot_2023-09-06-17-09-20-629_com.tencent.mm.jpg
Screenshot_2023-09-07-15-22-32-622_com.tencent.mm.jpg
Screenshot_2023-09-07-15-22-26-850_com.tencent.mm.jpg


二次开发

克隆运行

克隆到本地

例如

git clone https://gitee.com/tmaofu/mini-program---cloud-music.git

安装依赖

进入项目根目录,执行npm install 安装项目依赖

cd ./mini-program---cloud-music
npm install 

构建依赖

使用微信开发者工具导入项目

img

img

开始构建npm包,构建成功后关闭微信开发者工具。

img

部署API接口服务

具体可以参考:

网易云音乐 NodeJS 版 API

安装

 git clone git@github.com:Binaryify/NeteaseCloudMusicApi.git
 cd NeteaseCloudMusicApi
 npm install

运行

node app.js

服务器启动默认端口为 3000, 若不想使用 3000 端口 , 可使用以下命令 : Mac/Linux

$ PORT=4000 node app.js

windows 下使用 git-bash 或者 cmder 等终端执行以下命令 :

$ set PORT=4000 && node app.js

配置API接口地址

再次用微信开发者工具打开项目,

编辑config\config.js文件中的baseUrl你的API接口服务的地址

export default {
  baseUrl: 'http://127.0.0.1:3000',
  cookieKey: 'cookie', //cookie保存本地的key名称
  blogUrl: 'https://www.yuque.com/maofu-rzqcp',
  searchHistoryKey: 'searchHistory'
}

不校验合法域名

img

编译运行

当配置好之后就可以编译运行了

img

项目目录结构说明

顶层目录

J0M~$F736@PKVLP27[]TG{H.png
api: 管理主包中用到的api接口
assets: 存放主包中的静态资源文件
behaviors: 存放公用的behaviors
components: 存放主包中的组件
config: 存放配置文件
custom-tab-bar: 自定义tab-bar组件
data: 存放一些会用到的数据
miniprogram_npm: npm包
node_modules: npm包
packages: 存放分包
pages: 存放主包中的页面
store: 状态管理仓库
template: 存放主包中的模板
utils: 存放工具性质的文件

目录文件详解

assets: 存放主包中的静态资源文件

image.png
flx-TDesign.scss: 修改TDesign样式
iconfont.scss: 阿里巴巴图标字体样式
index.scss: 存放一些共用样式类
variable.scss: 定义了一系列css样式变量

behaviors: 存放主包中公用的behaviors

image.png
injectAppStore.js: 可以向组件或者页面注入应用的状态,例如tab-bar当前的索引值
injectCheckLogin.js: 注入检查登录相关的函数
injectMusicPlayerStore.js:注入音乐播放器相关的状态
injectUserStore.js:注入用户相关的状态

components: 存放主包中的组件

image.png
common: 存放公共组件
home-center: 存放首页中会用到的组件
personal-center:存放个人中心页会用到的组件
video-center: 存放视频中心页会用到的组件

common: 存放公共组件
├─components
│  ├─common
│  │  ├─comment-area
│  │  ├─comment-item
│  │  ├─info-item-card
│  │  ├─music-player
│  │  ├─my-loading
│  │  ├─play-controll
│  │  ├─program-display-list
│  │  ├─song-display-list
│  │  ├─song-list
│  │  └─touch-panel

comment-area

image.png

comment-item

image.png

info-item-card

image.png

music-player

my-loading

image.png

play-controll

image.png

program-display-list

image.png

song-display-list

image.png

song-list

image.png

touch-panel

一个触摸面板组件,可以触发触摸,滑动事件,判断滑动方向,滑动距离等。
在音乐播放器组件(music-player)中,个人中心-个人背景卡片中,有使用。

注意:以上组件均在app.json中注册了,可以全局使用

home-center: 存放首页中会用到的组件
├─components
│  ├─home-center
│  │  ├─home-item-card
│  │  └─rank-list-card

home-item-card

image.png

rank-list-card

image.png

personal-center:存放个人中心页会用到的组件
├─components
│  ├─personal-center
│  │  ├─collect-songList
│  │  └─create-songList

collect-songList

image.png

create-songList

video-center: 存放视频中心页会用到的组件
├─components
│  └─video-center
│      ├─commend-video
│      ├─commend-video-item
│      └─mv-video

commend-video

image.png

commend-video-item

image.png

mv-video

image.png

config: 存放配置文件

image.png

export default {
  baseUrl: 'http://127.0.0.1:3000',
  cookieKey: 'cookie', //cookie保存本地的key名称
  blogUrl: 'www.maofu123.top',
  searchHistoryKey: 'searchHistory'
}

custom-tab-bar: 自定义tab-bar组件

image.png
image.png

data: 存放一些会用到的数据

image.png
存放了省份,城市信息

miniprogram_npm: npm包

image.png

node_modules: npm包

image.png

packages: 存放分包

image.png
packges-common: 公共分包
packges-home-center: 首页分包,存放了在首页中会进入的页面,要使用的组件,等等资源。
packges-personal-center: 个人中心分包
packges-sys: 系统分包,存放了登录相关的页面。
packges-video-center: 视频中心分包

packges-common: 公共分包
├─packages
│  ├─package-common
│  │  └─pages
│  │      └─comment-display

pages
页面/组件名称 功能
comment-display 评论展示页面

packges-home-center: 首页分包,存放了在首页中会进入的页面,要使用的组件,等等资源。
├─packages
│  ├─package-home-center
│  │  ├─components
│  │  │  ├─broadcaster-item-display
│  │  │  ├─playlist-item-display
│  │  │  ├─search-list
│  │  │  ├─search-result-dj
│  │  │  ├─search-result-playlist
│  │  │  ├─search-result-song
│  │  │  ├─search-result-tabs
│  │  │  ├─search-result-video
│  │  │  └─search-result-voice
│  │  └─pages
│  │      ├─broadcaster-center
│  │      ├─broadcaster-display
│  │      ├─broadcaster-tags
│  │      ├─playlist-center
│  │      ├─playlist-display
│  │      ├─playlist-tags
│  │      ├─recommended-daily
│  │      ├─recommended-playlist
│  │      ├─search-center
│  │      └─toplist-center
components
组件名称 功能
broadcaster-item-display image.png
playlist-item-display image.png
search-list image.png
search-result-dj 搜索结果展示列表-电台
search-result-playlist 搜索结果展示列表-歌单
search-result-song 搜索结果展示列表-歌曲
search-result-tabs 搜索结果展示的tabs
search-result-video 搜索结果展示列表-视频
search-result-voice 搜索结果展示列表-声音

pages
页面名称 功能
broadcaster-center
broadcaster-display
broadcaster-tags
playlist-center Screenshot_2023-09-06-16-11-53-556_com.tencent.mm.jpg
playlist-display Screenshot_2023-09-06-16-48-47-385_com.tencent.mm.jpg
playlist-tags Screenshot_2023-09-06-16-12-33-298_com.tencent.mm.jpg
recommended-daily Screenshot_2023-09-06-16-08-10-700_com.tencent.mm.jpg
recommended-playlist image.png
search-center Screenshot_2023-09-06-15-46-10-907_com.tencent.mm.jpg
toplist-center Screenshot_2023-09-06-16-14-40-045_com.tencent.mm.jpg

packges-personal-center: 个人中心分包
├─packages
│  ├─package-personal-center
│  │  ├─components
│  │  │  ├─ei-form-item
│  │  │  ├─mc-album
│  │  │  ├─mc-dj
│  │  │  ├─mc-video
│  │  │  ├─rp-album
│  │  │  ├─rp-dj
│  │  │  ├─rp-song
│  │  │  ├─rp-songList
│  │  │  ├─rp-video
│  │  │  └─rp-voice
│  │  ├─pages
│  │  │  ├─edit-info
│  │  │  ├─my-collection
│  │  │  ├─mylike-video
│  │  │  └─recent-play
│  │  └─template
│  │      ├─mc-item-card
│  │      └─rp-item-card

components
组件名称 功能
ei-form-item image.png
mc-album image.png
mc-dj image.png
mc-video image.png
rp-album 最近播放-专辑
rp-dj 最近播放-电台
rp-song 最近播放-歌曲
rp-songList 最近播放-歌单
rp-video 最近播放-视频
rp-voice 最近播放-声音

pages
页面名称 功能
edit-info Screenshot_2023-09-06-16-36-18-634_com.tencent.mm.jpg
my-collection Screenshot_2023-09-06-16-30-11-973_com.tencent.mm.jpg
mylike-video Screenshot_2023-09-06-16-30-50-908_com.tencent.mm.jpg
recent-play Screenshot_2023-09-06-16-23-55-422_com.tencent.mm.jpg

template
模板名称 功能
mc-item-card 我的收藏-信息展示模板
image.png
image.png
image.png
rp-item-card 最近播放-信息展示模板
image.png
image.png

packges-sys: 系统分包,存放了登录相关的页面。
├─packages
│  ├─package-sys
│  │  ├─assets
│  │  │  └─img
│  │  └─pages
│  │      └─login

pages
页面名称 功能
login Screenshot_2023-09-06-16-02-40-878_com.tencent.mm.jpg

packges-video-center: 视频中心分包
├─packages
│  └─package-video-center
│      ├─components
│      │  └─video-play-item
│      └─pages
│          └─video-player

components
组件名称 功能
video-play-item 视频播放器-每一项
Screenshot_2023-09-06-17-08-59-806_com.tencent.mm.jpg

pages
页面名称 功能
video-player 视频播放器页面-可滑动加载更多

pages: 存放主包中的页面

├─pages
│  ├─TB-home
│  ├─TB-personal-center
│  └─TB-video
页面名称 功能
TB-home 首页
TB-personal-center 个人中心页
TB-video 视频中心页

store: 状态管理仓库

├─store
│  ├─app
│  ├─musicPlayer
│  └─user
文件名 功能
app 关于app的全局状态仓库
musicPlayer 关于音乐播放器的全局状态仓库
user 关于用户信息的全局状态仓库

template: 存放主包中的模板

├─template
│  ├─common
│  │  └─info-display-card
│  ├─home-center
│  │  └─rank-list-item
│  └─personal-center
│      └─more-operations-item

common:存放公用的模板
模板名 功能
info-display-card image.png

home-center:存放首页中会用到的模板
模板名 功能
rank-list-item image.png

personal-center:存放个人中心页会用到的模板
模板名 功能
more-operations-item image.png

utils: 存放主包中工具性质的文件

└─utils
    │  getArea.js
    │  localStorage.js
    │  request.js
    │  util.js

    ├─filter-js
    │      filter.js

    └─filter-wxs
            filter.wxs
文件名 功能
getArea 获取省份,城市名
localStorage 本地存储
request 封装wx.request
util 存放一些工具性质的函数
filter.js 过滤器
filter.wxs 过滤器

API 接口文档

接口官网

网易云音乐 NodeJS 版 API

我的分享-Apifox

这是我这个项目中用到的一些api接口,接口返回的数据均有示例。
使用须知 - 小程序-云音乐

相关问题

如何修改拦截器

打开 utils/request.js,修改 Requester 类中的方法:

方法名 功能
requestIntercept 请求拦截器
responseIntercept 响应拦截器
errIntercept 错误拦截器
MIT License Copyright (c) 2023 MAOFU Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

仿造网易云音乐APP,利用开源API接口实现微信小程序端的音乐应用。 expand collapse
JavaScript and 2 more languages
MIT
Cancel

Releases

No release

Contributors

All

Activities

Load More
can not load any more
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/tmaofu/mini-program---cloud-music.git
git@gitee.com:tmaofu/mini-program---cloud-music.git
tmaofu
mini-program---cloud-music
小程序-云音乐
master

Search

344bd9b3 5694891 D2dac590 5694891