莉玛同款好物大盘点,看看女神都在用什么提升生活品质?

tmyb

大家今天跟大家唠唠我最近搞的一个小玩意儿,名字叫“莉玛”。这名字听着挺洋气,就是个个人项目,别想歪哈!

我是想做一个简单的本地音乐播放器,因为平时喜欢听歌,但是网易云啥的广告太多,而且有些歌还下架,贼烦。所以就想着自己撸一个,想听啥听自由!

说干就干,我得选个语言?想来想去,我还是选Python。为啥?因为简单!之前用Python写过一些小脚本,感觉还挺顺手的。而且Python的库也多,找个音乐播放的库应该不难。

莉玛同款好物大盘点,看看女神都在用什么提升生活品质?

然后我就开始找库,搜搜,找到Pygame。这个库挺老的,但是功能还算全,能播放音乐,还能做游戏啥的。就它!

接下来就是写代码。我先搭个界面,用Tkinter,也是个Python自带的库,简单易用。界面就弄个播放按钮、暂停按钮、上一首、下一首,还有个进度条。丑是丑点,但是能用就行!

然后就是实现播放功能。Pygame播放音乐挺简单的,几行代码就搞定。加载音乐文件,播放,暂停,都没啥问题。但是!问题来!

这个Pygame只能播放wav格式的音乐,像mp3这种常用的格式,它不支持!我去!这可咋整?难道我要把所有的mp3都转成wav?那也太麻烦!

于是我又开始搜,看看有没有什么库能解决这个问题。终于,我找到mutagen。这个库可以读取mp3文件的信息,比如歌手、专辑啥的,还能解码mp3文件!

有mutagen,我就可以把mp3文件解码成Pygame能播放的格式。但是,解码过程比较慢,而且还占用CPU。如果直接解码播放,肯定卡成PPT。

莉玛同款好物大盘点,看看女神都在用什么提升生活品质?

所以我又想个办法,先把mp3文件解码成wav格式,然后把wav文件保存到本地。这样下次播放的时候,就不用再解码。但是!问题又来!

如果每次都把mp3解码成wav,那也太占硬盘空间!我的硬盘本来就不大,可经不起这么折腾。

思来想去,我决定用缓存!第一次播放mp3的时候,先解码成wav,然后把wav文件保存到缓存目录。下次播放的时候,先检查缓存目录里有没有对应的wav文件,有的话就直接播放,没有的话再解码。

这样既解决Pygame不支持mp3的问题,又避免频繁解码和占用硬盘空间的问题。完美!

除播放功能,我还加一些其他的功能,比如歌词显示、专辑封面显示、播放列表管理啥的。歌词是从网上找的,专辑封面也是从网上下载的。播放列表就自己写个简单的,可以添加、删除歌曲。

我把代码打包成exe文件,这样就可以直接运行,不用安装Python啥的。打包工具我用的是PyInstaller,也挺简单的。

莉玛同款好物大盘点,看看女神都在用什么提升生活品质?

折腾几天,这个“莉玛”总算是能用。虽然界面简陋,功能也比较简单,但是能满足我的基本需求。而且自己写的,用起来也顺手。

以后有时间,我再慢慢完善它,比如优化解码速度、增加音效、美化界面啥的。这个“莉玛”就是我的一个玩具,没事的时候拿出来玩玩,也挺有意思的。

对,这个项目我放到GitHub上,感兴趣的可以去看看:[这里没有链接!],但是代码写的比较烂,别嫌弃哈!

这回就分享到这里,下次再跟大家分享其他的实践记录。拜拜!