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

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

作者: 红袖吾狗 | 来源:发表于2022-11-03 13:56 被阅读0次

    历时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写的一款音乐播放器

          本文链接:https://www.haomeiwen.com/subject/zlhetdtx.html