Giter VIP home page Giter VIP logo

qmd_android's Introduction

开源说明

QMD于2022.9.14停止服务。

2023.1.18:兑现之前的承诺,将QMD安卓端开源。项目可以正常编译和运行,但是QMD脱离服务器无法正常工作,例如播放和下载歌曲。

之前的图标是我本人的设计,由于这个图标我还有别的用途,所以本项目不会使用原版图标。我在www.iconfont.cn找到一个比较中意的图标作为替换。

项目说明

这个项目基本是我的练手实践的地方,大量代码体现我从一个菜鸟变成不那么菜的菜鸟。我想说的是,项目的代码质量参差不齐,虽然去年我有努力去改善整个项目结构,但每次看到大量垃圾代码总会让我快速丧失动力。最终还是没有改变这是坨屎山代码的事实。

项目当前还处于开发下一个版本的过程中,因此在UI界面上会有一些“未完工”的痕迹。我记得当时准备使用一个超酷的列表框架,并且重做了搜索框,还准备重做顶栏。但突如其来停止维护的决定让我放下了所有开发工作。

项目最开始是由Java语言构建,后期逐步转为Kotlin。

下面大概说一下本项目主要用到的框架。

  • 绝大部分页面使用Navigation进行跳转。

  • 网络请求使用Retrofit框架 + 协程。

  • 数据库使用Room

  • 部分页面采用MVVM架构。

  • 播放器使用Exoplayer构建。

  • 下载功能使用Aria库。

我想大家对具体开发没有太多兴趣,主要是对QMD所采用的接口感兴趣。这里就不仔细阐述项目结构了。

关于接口

我并没有特地整理过QQ音乐的接口,因为QMD所使用的接口比较少。如果想参考QQ音乐接口,本项目可能并不是特别合适。如果想看比较完善的QQ音乐接口,可以参考jsososo/QQMusicApi

关于服务器端

服务器端不会开源。但我可以说一下服务器端做了什么工作。

首先,服务器端会对客户端的数据进行增删查改,关于这点可以在app/src/main/java/com/qmd/jzen/api/services/QMDService.kt里面看到,这是服务器端的所有接口。

其次,服务器端还运行着一个程序用于定时获取绿钻账号的Cookie,并将其保存到数据库。

所以服务器端除了数据库外有两套程序:提供WebAPI的后端程序和自动获取Cookie的程序。

关于未来

我有想过把QMD做成自己设置Cookie的QQ音乐下载工具,不依赖服务器运行,但具体可行性还没有测试。如果有比较好的QQ登录方案,我可能会继续维护这个项目,作为开源项目。

Telegram群组

QMD交流群

qmd_android's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

qmd_android's Issues

下载和浏览建议

1.建议下载时建议可同时下载专辑封面,就如歌词那样。
2.建议点击歌曲,可以浏览歌曲所在专辑的其他歌曲。

希望能在听的时候看到歌词滚动

希望能出一个同步的歌词,同时也希望能加入一些批量操作。歌曲,歌单的管理操作。添加一些搜索功能。
这个APP已经很厉害的,非常感谢作者。

歌推荐

能不能添加个歌单或者是歌库 谢

是发生什么了吗

今天打开软件试图搜索结果加载了好久什么都没有 ,也尝试了之前搜索记录里能搜出来的歌。望恢复。

歌名过长时错误

Screenshot_20210722_170947_com huawei filemanager
Screenshot_20210722_171013_com tencent qqmusic
1、当歌名过长时下载的歌名会不全
2、由于歌名不全导致这几首歌下不了(这三首歌名在最后两个单词才有区别),下载时会提示已下载

空白

搜索空白。没法用

建议加长下载菜单或有个提示

默认下载菜单是这样的,一直以为没有下载封面的功能
1
后来发现它可以拉长,但只有点“下载”文字区域才能往上拉,其他部分无效
2
建议“下载”文字右边能够有个提示,毕竟这个功能有点儿隐蔽,或者能够直接展开全部菜单项更好。

“获取资源失败”

昨天用了这个软件很棒,但是今天早上发现
v1.7.1 用不了了,提示“获取资源失败”
1.5.5 还可以用。

怎么获取qq音乐歌单的歌单码?!!!! QWQ!!??!

我在用扫码器扫qq音乐分享歌单上的二维码时扫出来两个链接,第一个是直接扫出来的(https://c.y.qq.com/base/fcgi-bin/u?__=7M3zy76)第二个是扫出来后在浏览器访问中的地址(https://i.y.qq.com/n2/m/share/details/taoge.html?ADTAG=erweimashare&appshare=android_qq&appversion=10110004&channelId=10036163&hosteuin=oK6kowEAoK4z7eSs7inANe-Poz%2A%2A&id=7412642123&openinqqmusic=1&platform=11)

1.7.2获取资源失败

Screenshot_20221018-182221_QMD

1.7.2能搜到歌曲,但是播放或者下载的时候就会提示获取资源失败。

求开发TV版!~

很喜欢在电视机上听音乐(音质好嘛),家里的是索尼的安卓电视可以安装apk,希望能开发一版适配遥控器操作的,上下左右确定返回即可

安卓12闪退

希望可以解决这个问题,安卓12能进软件但是点设置和搜歌都闪退

开源,一起搞吧

我也是个Android Developer

优秀的项目可以一起开源搞,让大家享受音乐~

[询问] [v1.7.0-beta] Hi-Res 音乐下载办法?

因为今天看到作者的更新日誌裡提到了可下载 Hi-Res 音乐,但是不太懂是在哪裡下载,所以上来询问一下
装置:Samsung Galaxy Note 5 (N9208) + OneUI 1.0 (FloydROM v5.1) (Android 9.0)
QMD 版本:v1.7.0-beta

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.