同时支持 Mac 与 Windows 系统。

  • 下载地址
  • 掘金链接

项目使用 electron 作为外壳,webpack 作为打包工具,核心技术包括 React + Redux + React-router v4 + antd,简单实现了一个音乐播放器的基础功能。

项目结构设计

|
|—— config // 打包配置
|—— mock // 模拟数据
|—— resource // 一些打包使用到的资源文件
└── src├── main // 主进程└── renderer // 渲染进程├── actions├── api // 接口├── assets // 公用静态资源├── components // redux展示组件├── containers // redux容器组件└── reducers

关键技术点

  • 工程模式批量生产列表“高阶”组件

通过一个通用的工厂函数 connectListHoc,并定义相关的接口与参数规范,从而在其他地方能够通过使用该函数批量生产 react 组件,解决类似组件的复用问题

// define
export function connectListHoc ({className,stateName,playIcon = false,getAllData,itemOnClick
}, ListItemRender) {return '...'
}
// how to use
export default connectListHoc({...})
  • 歌词界面高斯模糊

核心是css3的filter属性,由于该属性对性能有一定要求,因此使用该属性时,px值不能设置太高。一开始的设计是采用非常强烈的模糊效果,在mac端并无大问题,但是发现在较低配置的Windows上面会造成卡顿现象。最终的解决方案是设置2个div,第一个用来作为模糊背景图,第二个用于显示不被模糊的文字(同时使用半透明黑色遮罩,避免颜色冲突)。

.background {position: absolute;height: 100%;width: 100%;background-color: @background-color; /* 图片未加载出来时 */filter: blur(15px);
}
.content {height: 100%;background-color: rgba(0, 0, 0, .5);
}
  • redux中间件与promise的配合使用
  • ant-design按需打包与自定义react模版结合
  • 拖拽本地歌曲进行播放
  • 主进程与渲染进程的通信

Screenshot

项目包括几个基本页面,内部使用路由进行实现,其中,我的歌单及私人音乐馆必须登录后才可见。

在此,非常感谢 NeteaseCloudMusicApi 提供的 API。

这是一个个人茶余饭后的项目,也是对 React 技术栈的一次实践过程。项目中仍然有很多需要改进的地方,例如对 Redux 的 actions 还没有做到较好的模块化,因为使用了 ant-design,导致没有拆分足够的展示组件,界面也显得较为粗糙等。同时现阶段并没有对 electron 进行深入的开发,可以看到在登录界面,关于界面都直接采用了 web 端 Modal 的实现方式,这些都是后续开发需要解决的问题。

Last

贴上项目的 GitHub 地址: https://github.com/leezng/iMusic

基于React开发一个音乐播放器相关推荐

  1. .net vue漂亮登录界面_基于 electron-vue 开发的音乐播放器「实践」

    作者:XiaoTuGou 转发链接:https://github.com/SmallRuralDog 前言 基于 electron-vue 开发的音乐播放器,界面模仿QQ音乐. 技术栈electron ...

  2. 基于QT开发的音乐播放器(附源码)

    基于QT开发的音乐播放器(附源码) 一.简介 1.介绍 2.功能描述 3.系统功能层次模块图 4.各模块功能描述 (1)播放界面 (2)歌词 (3)歌曲信息 (4)歌曲列表 5.文件格式 6.运行环境 ...

  3. 基于JavaSwing开发MP3音乐播放器 课程设计 大作业源码 毕业设计

    基于JavaSwing开发MP3音乐播放器:   (大作业) 开发环境: Windows操作系统 开发工具: MyEclipse+Jdk 运行效果图:  基于JavaSwing开发MP3音乐播放器:  ...

  4. 用React做一个音乐播放器

    介绍 任何正在学习 React 并想使用 React 构建项目的人.有各种博客和文章可以为开发人员指导此类项目.我确实浏览过这些文章,但其中总是缺少一种项目.缺少的项目是音乐播放器和视频播放器.这两个 ...

  5. html5开发一个音乐播放器,HTML5开发学习(1):使用aduio标签打造音乐播放器

    关于html5的炒作已经有一段时间了,小弟亦是个跟风之人,对该新鲜事物也充满好奇和期待.本文为该系列(html5尝鲜)第一节,先以一个简单的demo开胃,希望能勾起各位同学对html5的兴趣和关注. ...

  6. 23|VS2017 基于MFC 做一个音乐播放器,带音量调节,切换歌曲

    最近接到个小任务,用MFC做一个音乐播放器,不过这也是一直想尝试的,于是今天早上9点到下午16:00,总算是完成了需要的功能 开门见山,先展示一下整体界面 下面按照功能模块介绍我做这个播放器的过程 预 ...

  7. 基于C#制作一个音乐播放器

    此文主要基于C#制作音乐播放器,可实现导入本地歌曲.音乐播放.音量设置.歌词显示等. 实现流程 1.1.创建项目 1.2.准备素材 1.3.功能开发 实现流程 1.1.创建项目 打开Visual St ...

  8. 基于Android开发的音乐播放器小程序带后端(附带学习源码)

    实现一个简单的播放器,要求功能有:播放.暂停.停止.退出功能,按停止键会重置封面转角,进度条和播放按钮:按退出键将停止播放并退出程序. 后台播放功能,按手机的返回键和home键都不会停止播放,而是转入 ...

  9. 听音乐不过瘾?自制一个音乐播放器!【附带函数源码】

    C#的音乐播放器是基于C#窗体程序而设计开发,是学习C#winform开发的一个较好的实战项目.本文讲解了音乐播放器的基本控件的函数编写及开发思路 函数目录 打开音乐文件控件函数 双击音乐触发播放属性 ...

最新文章

  1. ASP.NET MVC 概述
  2. 看了SUMTEC的稍微思考了一下…… 感触颇深。讲一件身边的事:
  3. 【Android 逆向】ART 脱壳 ( InMemoryDexClassLoader 脱壳 | BaseDexClassLoader 构造函数 | DexPathList 构造函数及后续调用 )
  4. c语言多进程架构改go语言,golang多进程并发
  5. java 应用程序 gui_Java GUI应用程序关闭陷阱
  6. 从一次换机器的过程谈软硬件的分离
  7. 软考信息安全工程师备考笔记1:第一章信息安全基础备考要点
  8. Linux 上配置网络设备命令举例
  9. 《结对-航空购票系统-开发环境搭建过程》
  10. C#使用webclient下载图片返回403forbiden
  11. 如何通过GoLand进行Debug
  12. Java导出Excel,提示格式与文件扩展名不一致
  13. 《树莓派开发笔记 - 第1部分 基础篇》第7章 树莓派变身路由器
  14. java架构师_如何成为一个资深Java架构师?
  15. MacPro终端出现bash: touch: command not found
  16. Android IBinder机制简单介绍
  17. Zookeeper启动成功,报错“Error contacting service. It is probably not running”
  18. 删除Maven骨架Archetype
  19. 火星车初级java面向对象
  20. Python3 遍历列表、字典和元组方式总结

热门文章

  1. 第8,9,10章读后感
  2. WinAPI【远程注入】利用远程线程注入DLLDelphi版
  3. 一种数据结构的封装模式
  4. C++提高部分_C++类模板对象做函数参数---C++语言工作笔记090
  5. MQTT工作笔记0010---订阅主题和订阅确认2
  6. Linux学习笔记020---CentOs7.3 搭建 Solr单机服务
  7. java面试要点---基础部分CoreJava,基础及语法
  8. mxnet window10 cpu 模式的安装
  9. 利用mysql数据库中_利用mysql和mysqli取得mysql的所有数据库和库中的所有表
  10. C语言和设计模式(解释器模式)