一个 React 简易网页端音乐播放器

前言

这是一个轻量级的 react 音乐播放器,前端使用 UmiJS,后端采用网易云音乐 NODEJS API 制作。项目的 TS 声明写的比较乱,后续有空的话会发布重写 TS 的版本或者直接重构该播放器。

后续计划将右侧播放器抽离为一个单独的组件,可供页面直接使用。

功能

现有功能

  1. 登陆 / 退出个人网易云账号
  2. 获取私人雷达歌单
  3. 播放歌曲
  4. 播放自己已有的网易云音乐歌单 / 订阅的歌单
  5. 单曲播放 / 全部循环 / 随机播放
  6. 搜索歌曲
  7. 背景图切换

计划中功能(先把饼画着)

  1. 音质选择
  2. 歌曲切换 -> 背景图变化
  3. 保存播放列表并同步到网易云
  4. 双语歌词对照
  5. 歌词自定义字体大小
  6. 歌曲查看评论 / 点赞 / 留言
  7. 详情页相似歌曲推荐
  8. 无版权歌曲或加载出错歌曲增加标记
  9. 将右侧播放器抽离成独立组件

比较有特色的地方

1、右侧全局播放栏

播放栏可以清空播放列表,查看当前歌曲歌词,对播放列表的歌曲可以使用拖拽进行顺序调整。

2、主页左上角频谱图的实现

开始构建使用

1.安装项目

js 复制代码
npm install

2.设置后台接口地址

第一个:网易云 NODEJS 服务器,到 src/utils/request.ts 将其设置为你的网易云后台 API 地址。

js 复制代码
switch (process.env.NODE_ENV) {
  case 'production':
    // 你的生产环境地址 / Your production mode api
    axios.defaults.baseURL = '';
    break;

  default:
    // development
    axios.defaults.baseURL = 'http://localhost:3000';
    break;
}

第二个:天气地址,到 src/constant/api/weather.ts 进行设置。

然后到 src/redux/modules/Weather/action.ts 下根据你设置的天气接口改变传入数据结构,文件内均有注释。

js 复制代码
      const info = {
        // 空气质量
        airQuailty: dewPt,
        // 当前气温
        currentTemp: temp,
        // 体感气温
        feelTemp: feels,
        // 湿度
        humidity: rh,
        // 气压
        baro,
        // 天气描述,如晴或多云
        weatherDescription: cap,
      }

如果想高度自定义样式或内容的话可以到 src/pages/IndexPage/topRightWeather 进行调整。

打包发布

js 复制代码
npm run build

部分功能预览

相关推荐
小李子呢02112 分钟前
为什么会有react和vue这些框架的出现
前端·vue.js·react.js
军训猫猫头2 分钟前
7.带输入参数的线程启动 C# + WPF 完整示例
开发语言·前端·c#·.net·wpf
CodeSheep2 分钟前
同事偷偷给我介绍私活,说1万报酬全给我,结果甲方私下告诉我说,同事在当中白拿了2万,我觉得被耍了,媳妇却让我要知足,说我一点不亏
前端·后端·程序员
Betelgeuse764 分钟前
告别传统 ModelForm:用 React 与 DRF 打造现代化项目管理表单
前端·react.js·django·前端框架
IT_陈寒5 分钟前
SpringBoot这个"自动配置"差点让我加班到凌晨
前端·人工智能·后端
遗憾随她而去.8 分钟前
react学习(一)
javascript·学习·react.js
恋恋风尘hhh8 分钟前
文字点选验证码前端安全研究:以网易易盾(dun.163)为例
前端·安全
鹏程十八少8 分钟前
1.2026金三银四 Android Glide 23连问终极拆解:生命周期、三级缓存、Bitmap复用,大厂面试官到底想听什么?
android·前端·面试
hhhhhh_we8 分钟前
预颜美历:AI驱动的私人面部美学与皮肤全周期管理工具
前端·图像处理·人工智能·python·aigc
Cobyte9 分钟前
5.响应式系统比对:手写 React 响应式状态库 Mobx
前端·javascript·vue.js