android 随音乐跳动,随心音乐,让心跟着跳动起来

随心音乐

980d546e-c96e-4b9d-b983-813367641f4c.svg

随心音乐,是一款基于MVP+Retrofit+EventBus+Glide的应用,有兴趣的盆友欢迎Star,Fork!

前言

由于平日里自己是一个很喜欢听音乐的boy,所以在闲暇时间本着自己的兴趣去开发了这款音乐,中途遇到了很多的困难,但是都是通过自己不断探索下一步一步解决了问题。

实现功能

[x] 本地音乐

[x] 我的收藏

[x] 网络歌曲下载

[x] 最近播放

[x] 在线搜索歌曲,专辑,在线歌曲播放

[x] 专辑歌曲

[x] 播放栏,播放进度条

[x] 播放界面,歌手图片唱碟

[x] 播放控制,暂停,上一首,下一首

[x] 歌词显示

[x] 播放模式,顺序播放,随机播放,单曲循环

[ ] 听模块,包括歌单,排行榜等

[ ] 看模块,包括推荐MV等

项目展示

动态图

6273c04fe40faea922448255e8d48924.gif

4bf4d02518da601272bb5f02a27bd586.gif

截图

637f2d39b02566e2ae2237928b2255cc.png

635164f00fd1026aafe84b703ba50cc8.png

ec6296a41dd795675c34e9c8211e8c8c.png

ea083dd0cce4a1f18632a9e0de3caa55.png

78a6737fee8149aad0f3676cb988cc45.png

976f19f4e6ef88e1548d9230db46a39a.png

下载(5.0以上)

项目Api

下面的请求中如果参数有songmid,都是得经过搜索歌曲或歌手后才能获得songmid,然后进行请求。不能获取到qq音乐的vip或者付费歌曲的播放地址,Api是通过fiddler4爬取网页端qq音乐获取的,如失效,请提出issue。

搜索

1.搜索歌手/歌曲

说明:关键字为歌手就返回该歌手的歌曲,如果为歌曲就返回该歌曲列表

参数说明是否必须默认值

p分页否默认为1

n请求数量否默认为10

w关键字是无

format格式化否如果用Retrofit的Json解析的话记得一定要format=json

2.搜索专辑

参数说明是否必须默认值

p分页否默认为1

n请求数量否默认为10

w关键字是无

format格式化否如果用Retrofit的Json解析的话记得一定要format=json

t类别是没有默认值,如果为搜索专辑,则t为8。如果是搜索mv,t=12。

获取歌手图片

1.根据歌手获取图片

说明:请求后将有歌手图片的字段,请求后的picUrl和img1v1Url就是图片地址

参数说明是否必须默认值

s歌手是无

type类别是无,但必须为100

!!!注意:有可能在网上能够请求到数据,但在实际代码中请求时却不能返回的情况(自己在开发中碰到),这时候别着急,只需要在网络请求时加上请求头"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"就能解决问题!

2. 根据albumMID获取专辑图片

说明:请求示例其实有两部分组成,即固定地址+albumMid。

组成值说明

albumMid在搜索专辑后,或者搜索歌曲会有albumMid这个字段需要先搜索后得到albumMid

获取播放地址

说明:这个是根据歌曲songmid来获得音乐播放地址的,请求示例很长,在经过多次尝试后,很遗憾的并不能缩减,要想获取播放地址,只需要更改上面高亮字体的songmid后的001X0PDf0W4lBq即可,至于更改方法很多,比如直接用Java的字符串拼接。请求成功后请注意两个字段purl和sip(为数组),歌曲的播放地址就是sip数组里的其中一个加上pur,即sip[0]+purl(vip音乐或者版权音乐的purl为空)。

1. 请求时的参数说明

参数说明

songmid歌曲的songmid怎么得到,必须通过上面搜索歌曲后得到,然后更改上面示例的001X0PDf0W4lBq(泡沫的songmid)即可,示例的其它地方都不能做更改,也不能删减

2.请求后重要字段解释

播放地址:sip[0]+purl

字段说明示例

sip播放接口地址,目前来说有两个地址,但是很有可能会改变"sip": [

"http://ws.stream.qqmusic.qq.com/",

"http://isure.stream.qqmusic.qq.com/"

]

purl里面最重要的就是vkey的值,这个值每次请求都不一样"purl":C400000HjG8v1DTWRO.m4a?guid=358840384&

vkey=852D30CD2DEA9E0AFF9CF700977FAFB413A06486CFE8F7250

2918665277C5407D8D5AD42039F02329401300003A2853B10816B83C3145159

&uin=0&fromtag=66

获取歌词

说明:如果你点击了上面的链接的话,你会发现返回的是-1310的错误码,这时候请别着急,并不是这个请求Api是无效的,只是因为这个获取歌词的Api有点特殊,在请求时需要在请求的header上加上Referer地址就可以了

参数说明

songmid歌曲songmid,需要在搜索歌曲后获取

format格式,建议加上format=json

nobase64敲重点!!!,一定要等于1,默认是0,如果没加上的话,返回的歌词将会是乱码,加上后就可以得到歌曲的动态歌词,即带有时间的歌词

后续

本项目为个人闲暇开发项目,仅供学习借鉴使用,不用做商业用途

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值