今天跟大家唠唠嗑,关于我这几天搞的“听歌”小项目。也没啥高深的技术,就是把平时自己喜欢听歌的流程给简化了一下,顺便分享给喜欢音乐的朋友们。
就是想解决一个问题:每次想听歌都要打开好几个APP,找半天歌单,贼麻烦!我就寻思能不能搞个东西,一点开就能直接开始放我喜欢的歌。
我把市面上主流的音乐APP都研究了个遍,像什么酷狗音乐、QQ音乐、网易云音乐、酷我音乐、MOO音乐、海贝音乐,全都下载下来体验了一把。发现各有各的优点,但没有一个能完全满足我的需求。
酷狗音乐,歌挺全的,还能看MV,但广告有点多,而且会员制度也比较复杂。QQ音乐,正版音乐多,还有智能推荐,但是有些歌需要付费才能听。网易云音乐氛围挺评论区也挺有意思的,但是有些小众的歌可能没有。酷我音乐感觉跟酷狗有点像,MOO音乐主打音质,海贝音乐则是专门为HiFi设计的。
考虑再三,我决定自己动手!第一步,先搭个框架。我用Python写了个简单的界面,就几个按钮,播放、暂停、下一首,简单粗暴。
就是解决音源的问题。我没有版权,也不能直接从那些APP里扒歌,所以只能曲线救国。我的想法是,能不能调用这些APP的API,让它们在后台播放,我只负责控制。
但是!研究了一圈发现,这些APP的API要么不对外开放,要么加密得很厉害,搞不定!
没办法,只能换个思路。我想到可以用爬虫,从一些公开的音乐网站上抓取歌曲信息和播放链接。但是这样一来,歌曲的质量就参差不齐了,而且版权也是个问题。
我决定采取折中的方案:我自己整理一个歌单,把歌单里的歌曲下载到本地,然后用Python的pygame库来播放。这样一来,歌曲的质量有保证,而且也不涉及版权问题。
说干就干!我花了一天时间,把自己喜欢的歌曲全都下载了下来,然后按照自己的喜好整理成几个歌单。
就是写代码了。我用pygame库实现了歌曲的播放、暂停、下一首等功能。还加了一个简单的音量控制。
代码写好后,就是测试了。我把程序跑起来,发现一切都正常。但是!很快就发现了一个问题:pygame库只能播放本地的wav、mp3等格式的音频文件,不支持在线播放。
这意味着,我只能听本地的歌曲,不能在线搜索和播放歌曲。这跟我最初的想法有点偏离!
但是,折腾了这么久,也不想半途而废。我决定先这样,以后有时间再研究在线播放的问题。
最终,我的“听歌”小项目就完成了。虽然功能很简单,但是它能满足我的基本需求:一点开就能开始放我喜欢的歌。
我每天都会用它来听歌。感觉比之前方便多了。也希望这个小项目能给大家带来一些启发。如果你也喜欢听歌,不妨自己动手做一个类似的工具!
