基于开源网易云API+Flutter写的一款音乐播放器

历时2个多月,基于开源网易云API的一款使用Flutter开发的桌面音乐程序终于完成了它的第一个版本v1.0.0。再次感谢大佬为我们整理并提供众多接口。

先来看看第一版的成品图。

效果图1.gif

本项目是基于Flutter3.0.5Dart2.17.6开发的桌面版程序,支持MacOSWindowsLinux。(PS:由于我手上只有Mac,没有试过其他两个平台,方便的大佬网友可以试下有没有问题,感谢。)

已完成的功能介绍

  • 登录:手机号密码登录,短信登录,扫码登录
  • 发现:每日音乐,推荐音乐
  • 音乐播放:在线播放,本地播放,播放列表,音量调节,上一首,下一首切换,播放模式切换
  • 音乐下载(JSON+mp3)模式,文件删除监听
  • 私人FM
  • 我喜欢的音乐
  • 我收藏的歌单列表
  • 音乐详情页,歌词滚动定位
  • 评论列表,发表文字评论

用到的主要技术栈或三方库

Provider:状态管理。

audioplayers:实现音乐的播放,因为像justaudio是不支持桌面版的。

dio:网络请求。

Image:就是自带的,只不过简单封装了下。

bitsdojo_window:主要是之前用过这个,比较熟悉,最重要的是它在处理窗口大小时是加载完后才显示,不会出现先800x800,突然变到400x400的问题。

cookie_jar:挺好用的Cookie解析库,搭配dio_cookie_manager可以做到自动管理请求中的cookie问题。当然云音乐的cookie格式有点小问题,如果不预处理下,会导致cookie_jar无法解析,需要自己先提前处理下,具体可以看下我项目中的CookieParse类。(关于这个问题我会在后面的文章里仔细说明下)使用云音乐API最难过的第一关就是这个登录和cookie问题,一不小心就给你报个460,网络太拥堵。之前一度把我恶心坏了。

path_provider:路径获取,不多说。

shared_preferences:简单好用的key-value本地持久化存储。

url_launcher:打开浏览器。

如何运行或调试

localhost

本项目支持本地服务器运行,如果要本地运行。需要先下载NeteaseCloudMusicApi项目,并通过node app.js跑起来服务端项目,再运行DreamMusic项目,不然接口是走不通的哦。

[图片上传失败...(image-4fefc5-1667454960372)]

Vercel

注意了Vercel运行是要翻墙的,我已经在Vercel上部署了一个服务,跳到设置页,网络设置,点击切换,选择https://netease-cloud-music-api-eight-kappa-18.vercel.app即可。

自定义域名

当然你也可以选择自己服务器,选择网络设置,自定义输入即可。

最后

本文是关于DreamMusic的第一篇文章,主要是对该项目做一个简单的介绍,后面我会展开一篇文章专门讲讲其中的细节和开发中遇到的坑点,比如cookie怎么管理,导航控制等。最后贴上项目的Github链接点我跳转DreamMusic,也可以直接下载Release包。

你可能感兴趣的:(基于开源网易云API+Flutter写的一款音乐播放器)