GithubHelp home page GithubHelp logo

spring-zhang / music-player-in-vue Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cat-walk/music-player-in-vue

0.0 2.0 0.0 7.32 MB

高仿网易云音乐 Vue前端项目

Home Page: http://meiyun.info

JavaScript 24.63% HTML 1.35% Vue 72.93% CSS 1.09%

music-player-in-vue's Introduction

高仿网易云音乐 Vue前端项目

技术栈

Vue + Vue-Router + Vuex + Webpack + Axios

现在就克隆下来看看吧!

Github地址: https://github.com/cat-walk/music-player-in-vue 项目部署地址: http://meiyun.info 如果你发现该项目有问题,建议先看看本文底部的项目已知问题,里面可能会有说明,如果没有,欢迎issue或留言,谢谢~

前端部分

  1. 安装依赖
npm install
  1. 起项目
npm run serve

后端部分

Github地址:https://github.com/Binaryify/NeteaseCloudMusicApi

后端操作见文档。



界面和功能展示

首页展示banner、推荐歌单,点击可进入排行榜

歌曲播放界面支持播放进度同步、收藏或取消收藏当前歌曲

banner、排行榜左边的三个按钮点击没有效果( ´▽`) ,没时间写那些啦...



实现了登录功能

登录后展示头像和昵称,且可进入个人中心即“我的”页面,可查看收藏的音乐和最近播放过的音乐。



搜索模块:热门搜索、搜索历史、搜索建议



项目结构

PS:

  1. 打勾的为已完成的内容,现在本项目除个人信息修改以外,其他功能都已完成。

  2. 字体加粗的部分为一个组件,第二次使用同一组件(即组件复用)时不再加粗,以做标识。

  • 1. 侧边栏模块

    • 个人信息展示(头像、昵称)
      • 个人信息修改
    • 登录按钮
      • 登录模块
  • 2. 音乐推荐模块(主页)

    • 轮播图banner模块
    • 排行榜入口
      • 排行榜模块
        • 歌单详情模块
          • 播放控制模块:实现了收藏/取消收藏歌曲的功能,实现了添加到最近播放歌曲的功能
    • 推荐歌单模块
      • 歌单详情模块
        • 播放控制模块:实现了收藏/取消收藏歌曲的功能,实现了添加到最近播放歌曲的功能
  • 3. 个人中心模块

    • 最近播放歌曲入口
      • 最近播放歌曲展示模块
        • 播放控制模块:实现了收藏/取消收藏歌曲的功能,实现了添加到最近播放歌曲的功能
    • 我的收藏入口
      • 歌单详情模块
        • 播放控制模块:实现了收藏/取消收藏歌曲的功能,实现了添加到最近播放歌曲的功能
  • 4. 搜索模块

    • 搜索框模块
      • 搜索结果模块
        • 播放控制模块:实现了收藏/取消收藏歌曲的功能,实现了添加到最近播放歌曲的功能
    • 热门搜索模块
      • 搜索结果模块
        • 播放控制模块:实现了收藏/取消收藏歌曲的功能,实现了添加到最近播放歌曲的功能
    • 搜索历史模块(与热门搜索模块公用一个组件)
      • 搜索结果模块
        • 播放控制模块:实现了收藏/取消收藏歌曲的功能,实现了添加到最近播放歌曲的功能


代码规范

使用EsLint, lint规范采用airbnb 的js 代码规范

在VSCode里配置 ESLint + Airbnb + Vue



技术方案



项目已知问题

  1. 点击收藏歌曲按钮后,会有一定的延迟(0.5s~5s,视网络情况)收藏才会成功。
  2. 频繁点击收藏按钮会导致收藏/取消收藏功能不生效。

问题1、2可能是后台对网易云的数据做了缓存导致的。(这个思考并没有动脑子,咳咳( ´▽`)

  1. 打开侧边栏的按钮有时会失效(侧边栏使用了vue-slideout插件 =====>甩锅:)
  2. 由于一系列复杂的问题,通过搜索界面进入歌曲控制页面的话,没有封面图片,只有懒加载的默认图片
  3. 播放音乐时,旋转的封面图片有时会出现闪动
  4. 由于iOS下规定audio标签不能自动播放,因此iOS下第一次播放音乐时需要点击暂停后再点击播放,如此即可。
  5. 侧边栏暂时只能通过左滑操作来关闭
  6. **如果你打开某一首歌无法播放,那可能这首歌是要付费才能播放的,换一首即可。**有时间会优化需要付费才能播放的提示。

写这个项目的经验和收获将在整理后发到我的Github上,应该不会鸽



致谢

非常感谢后台提供者Binaryify,接口很稳定,文档很完善

非常感谢CaiJinyc,我从ta的项目里学到了不少

  1. https://github.com/CaiJinyc/vue-music-webapp
  2. https://github.com/Binaryify/NeteaseCloudMusicApi

music-player-in-vue's People

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.