历时2个多月,基于开源网易云API的一款使用Flutter
开发的桌面音乐程序终于完成了它的第一个版本v1.0.0。再次感谢大佬为我们整理并提供众多接口。
先来看看第一版的成品图。
本项目是基于Flutter3.0.5
,Dart2.17.6
开发的桌面版程序,支持MacOS
,Windows
,Linux
。(PS:由于我手上只有Mac,没有试过其他两个平台,方便的大佬网友可以试下有没有问题,感谢。)
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
:打开浏览器。
本项目支持本地服务器运行,如果要本地运行。需要先下载NeteaseCloudMusicApi项目,并通过node app.js
跑起来服务端项目,再运行DreamMusic
项目,不然接口是走不通的哦。
注意了Vercel
运行是要的,我已经在Vercel
上部署了一个服务,跳到设置页,网络设置,点击切换,选择https://netease-cloud-music-api-eight-kappa-18.vercel.app
即可。
当然你也可以选择自己服务器,选择网络设置,自定义输入即可。
本文是关于DreamMusic
的第一篇文章,主要是对该项目做一个简单的介绍,后面我会展开一篇文章专门讲讲其中的细节和开发中遇到的坑点,比如cookie怎么管理,导航控制等。最后贴上项目的Github链接点我跳转DreamMusic,也可以直接下载Release包。