简单几步实现网络音乐播放器(Qt版百度FM)

                                                                           百度FM音乐Qt版本

      很久之前写的软件了,一直没有总结,也懒得继续开发了,这里简单总结一下,也算是对自己的努力一个交代吧。

       先来个ubuntu下的

再来一张Win10下的   

 


       起源:不大习惯打开一个浏览器听歌,在Ubuntu下一直用Y. T. Chung兄的豆瓣FM ,但是豆瓣貌似不支持客户端了,于是自己动手写了一个,凑合用吧。

程序功能:
1.支持百度账号登录(登录享受更好的试听体验哦。。),该功能未完善(验证码部分未完成)
2.可根据喜好选台,被选电台做出标记
3.实时歌词显示
4.歌手图片圆形旋转展示
5.播放进度显示(同步歌词和图片)

6.歌曲下载

       其实动手写一个软件还是蛮简单的,首先肯定是上网搜索相关的素材了,因为百度的API研究的人多,于是决定拿下它,给大家推荐一篇文章,一去二三里 大神的系列博文里面有一篇Qt实现网络播放器 介绍了怎么去写一个播放器,但是自己要实现起来还是要费一番功夫的,而且百度API已经更新了。

      先说明一下获取音乐的思路吧,当从浏览器打开百度FM的时候浏览器地址栏里面的链接是不能用来直接下载或者使用网络播放器收听的,因为百度已经做了封装,目的肯定是为了版权啊之类啦。要想获取真实的链接就要看看人家官方是怎么做的,先插入一个百度FM的播放图

具体操作请自行登录操作。先说一个概念“输入网址”是指要访问的网址,也可以理解为在浏览器中打开该网址

大致分为以下流程:

1.获取频道列表:

输入网址为http://fm.baidu.com/dev/api/?tn=channellist

返回格式为json格式如下图示。

我们需要的有两个东西1).频道名称;2).频道id(最重要)

具体怎么解析json,请自行查询相关资料,仔细观察下图可以获取上面两个信息

比如第一个频道 解析结果为

名称(channel_name): 

        漫步春天

频道id(channel_id):

public_tuijian_spring


2.根据第一步查询到的频道,来获取该频道下的歌曲列表网址为

输入网址:http://fm.baidu.com/dev/api/?tn=playlist&format=json&id=频道列表

比如第一步骤中获取的频道为 粤语则 字符串为'public_yuzhong_yueyu'

那么完整的网址为http://fm.baidu.com/dev/api/?tn=playlist&format=json&id=public_yuzhong_yueyu

返回的结果如下图所示


3.根据第二步中的歌曲列表中的id获取歌曲的“真实”链接

上图中的id就是歌曲的id了(比如第一个歌曲id为1425872),通过该id今儿可以获取到歌曲的全部信息

输入网址:http://music.baidu.com/data/music/fmlink?type=mp3&rate=320&songIds=歌曲ID

http://music.baidu.com/data/music/fmlink?type=mp3&rate=320&songIds=341864的返回如下图所示


观察上图很明显可以得到 歌曲名,艺术家,专辑,歌手图片,歌词链接,歌曲的真实下载地址

1)songName为'\u7231\u4e0e\u75db\u7684\u8fb9\u7f18' 翻译成可识别的为  《爱与痛的边缘》


2)artistName歌手

3)albumName专辑名

4)songPicSmall,songPicBig的链接分别是歌手的小图和大图

5)lrcLink歌词链接

6)songLink歌曲的真实下载链接


是不是很简单呢

最后奉上代码下载地址https://github.com/spygg/QBaiduFm

尽情的给我个star吧


  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
1 关于 Easy Player: Easy Player 是由于个人兴趣而制作的一款基于Qt的在线音乐播放器 目前是第一个本 并未进行足量优化 因此 在使用过程中可能存在某些Bug 请谅解 2 功能介绍: 目前功能支持歌曲在线搜索 单曲循环(其他循环方式后期添加) 添加搜索结果到试听列表 下载音乐到本地 歌词同步显示 还不能同步滚动 3 使用方法: (1)首先 从按钮说起: 左边第一排:播放(暂停) 下一首 单曲循环 下载当前歌曲 歌词显示; 左边第二排:音量键 右边第一排:歌曲时间轴 (2)其次 搜索: “歌曲特征”输入关键词搜索 会呈现搜索结果在搜索列表 搜索列表右边的按钮表示添加歌曲到播放列表 (3)最后 播放列表: 在歌曲列表中双击歌曲播放 右边的按钮表示下载歌曲 目前是下载完成之后才会提示 之后会做一个下载列表界面 4 其他 本来打算在下载的时候加入多线程 另外加一个数据库保存播放信息 但由于时间关系 并没有在这个本加入 之后的本会不断完善 欢迎大家下载测试和提意见 声明:代码仅供参考 请尊重原创 作者:Reyn 博客地址:http: blog csdn net jan5 reyn">1 关于 Easy Player: Easy Player 是由于个人兴趣而制作的一款基于Qt的在线音乐播放器 目前是第一个本 并未进行足量优化 因此 在使用过程中可能存在某些Bug 请谅解 2 功能介绍: 目前功能支持歌曲在线搜索 单曲 [更多]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值