首页 热门歌手 正文

Mine Mine 周杰伦:这首歌是不是你的青春回忆?

今天跟大家聊聊我这几天搞的“mine mine 周杰伦”小项目,别误会,不是挖矿,也不是真的去“mine”周杰伦,哈哈哈!就是用代码实现一个简单的音乐播放器,专门用来放周董的歌。

我琢磨着怎么把周杰伦的歌都搞过来。手动下载太慢了,而且音质参差不齐。我就开始研究各种音乐平台的API,想找个能批量下载的。折腾了两天,终于找到一个还不错的,可以免费下载一些周董的歌,虽然不是全部,但足够我初期测试用了。

拿到歌曲资源后,就开始搭播放器的架子。我用的是Python的Tkinter库,这玩意儿虽然丑了点,但是上手快,用来做个简单的界面足够了。先是画了个窗口,然后加了几个按钮:播放、暂停、停止、上一首、下一首。按钮的布局也费了点心思,想弄得好看一点,结果还是有点土,算了,能用就行。

Mine Mine 周杰伦:这首歌是不是你的青春回忆?

接下来是实现播放功能。Tkinter本身没有播放音乐的功能,得借助其他的库。我选了pygame,这玩意儿是专门用来做游戏的,播放音乐是小菜一碟。把pygame初始化后,就可以用它来加载音乐文件,然后控制播放、暂停、停止了。

最麻烦的是歌单管理。我想实现一个自动播放歌单的功能,就像网易云音乐那样。我就写了个函数,用来读取指定目录下的所有mp3文件,把它们放到一个列表里。然后,点击“下一首”按钮的时候,就播放列表里的下一首歌。

这中间遇到了不少坑。比如,pygame播放中文路径的文件会报错,我就把中文路径转成了unicode编码。还有,播放过程中程序会卡死,我就用了多线程来解决,把音乐播放放到一个单独的线程里,这样就不会阻塞主线程了。

为了让播放器更人性化一点,我还加了歌词显示功能。网上找了一个周杰伦歌词的API,可以根据歌曲名称获取歌词。把歌词显示到Tkinter的Text控件里,看起来还挺像那么回事的。

我还美化了一下界面,改了改颜色,换了换字体,让它看起来稍微好看一点。虽然还是比不上专业的播放器,但自己用着也挺舒服的。

整个过程下来,学到了不少东西。不仅复习了Python的基础知识,还学会了Tkinter、pygame、多线程等技术。最重要的是,能一边听着周董的歌,一边写代码,简直是人生一大乐事!

Mine Mine 周杰伦:这首歌是不是你的青春回忆?

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

相关推荐