首页 热门歌手 正文

Miss周杰伦歌曲推荐,首首都是回忆杀!

今天跟大家聊聊我这几天搞的“miss周杰伦”的小项目,说起来也是个挺有意思的尝试。

起因:

事情是这样的,我最近特别怀念周杰伦的歌,想找一些他以前比较冷门的歌来听听。结果在网上搜来搜去,感觉还是不太方便,要不就是音质不行,要不就是找不到资源。我就寻思着,干脆自己做一个简单的音乐播放器,专门用来放周杰伦的歌,也算是致敬一下我的青春!

Miss周杰伦歌曲推荐,首首都是回忆杀!

准备工作:

说干就干,我先是整理了一下手头有的周杰伦的歌,从小学就开始攒,MP3、APE、FLAC各种格式都有,一股脑儿全塞到一个文件夹里。然后就开始选工具,我平时比较喜欢用Python,觉得它简单易用,而且库也多,所以这回也不例外,直接用Python搞起。

开始动手:

我需要一个播放器界面。我用的是Tkinter,这玩意儿虽然丑了点,但是够简单,很快就能搭出一个框架。界面上主要有几个部分:歌曲列表、播放/暂停按钮、上一首/下一首按钮、进度条,还有一个显示歌名的标签。

然后,就是读取歌曲文件。我用os库遍历文件夹,把所有的MP3文件都读取出来,放到一个列表里。为了让歌曲列表显示得更友我还用mutagen库读取了MP3文件的标题信息,这样就能显示歌曲名了,而不是一堆乱七八糟的文件名。

就是播放功能。我用的是pygame库,这个库主要是用来做游戏的,但是用来播放音乐也很方便。我写了一个播放函数,每次点击播放按钮,就从歌曲列表里读取一首歌,然后用pygame播放。我还写了暂停、上一首、下一首等函数,让播放器基本的功能都有了。

Miss周杰伦歌曲推荐,首首都是回忆杀!

进度条这块儿稍微麻烦一点,我需要实时获取歌曲的播放进度,然后更新进度条的位置。我用*.get_pos()函数获取播放进度,然后用Tkinter的scale组件来显示进度条。为了让进度条能够拖动,我还写了一个回调函数,每次拖动进度条,就更新歌曲的播放位置。

遇到问题:

在做的过程中,也遇到了一些问题。比如,有的MP3文件读取出来是乱码,我用chardet库检测文件的编码格式,然后用正确的编码格式打开文件,才解决了乱码问题。还有,pygame播放音乐的时候,会占用主线程,导致界面卡顿。我用threading库创建了一个新的线程来播放音乐,解决了界面卡顿的问题。

最终成果:

经过几天的折腾,终于把这个简单的音乐播放器做出来了。虽然界面很简陋,功能也很简单,但是它能播放我所有的周杰伦的歌,这就足够了!

Miss周杰伦歌曲推荐,首首都是回忆杀!

这回做“miss周杰伦”这个项目,让我回忆了很多以前听周杰伦歌的时光。虽然现在很少听他的新歌了,但是他的歌永远是我青春的记忆。而且通过这回实践,我也巩固了Python的基础知识,学到了一些新的库的使用方法,也算是挺有收获的。

以后有机会,我再分享一些其他有趣的小项目给大家。大家也可以自己尝试做一些小项目,不仅能提高自己的技能,还能给自己带来很多乐趣!

本文转载自互联网,如有侵权,联系删除

相关推荐