首页 热门歌手 正文

想听张杰的歌?教你快速找到并播放张杰的所有歌曲

今天给大家唠唠嗑,说说我怎么用代码放张杰的歌儿的。说起来,这事儿还得从我那有点怀旧的心说起。

起因:

没事儿在屋里待着,突然就想听听老张的歌了,就是张杰,你们懂的。搜是能搜到,但是手动点来点去的多麻烦,咱程序员不得有点追求?就琢磨着能不能写个小玩意儿,一句话的事儿,直接开唱。

想听张杰的歌?教你快速找到并播放张杰的所有歌曲

摸索阶段:

先找轮子: 这年头,啥都讲究个效率,自己从头写?不存在的。先上各种社区溜达溜达,看看有没有现成的库能直接用。 锁定了几个: 找到了几个 Python 的音频播放库,像 `playsound`、`pygame` 啥的。看着都挺简单的,决定先试试 `playsound`。 小坑不断: 结果一上来就给我整不会了。`playsound` 这玩意儿,它不支持中文路径!我歌名都带“张杰”俩字,直接歇菜。

柳暗花明:

换个思路: 既然 `playsound` 不行,那就换 `pygame` 呗。这玩意儿功能强大点,应该能行。

想听张杰的歌?教你快速找到并播放张杰的所有歌曲

安装 `pygame`: `pip install pygame`,简单粗暴。 开始折腾: 导入 `pygame`,初始化,加载音乐,播放,一气呵成。代码如下:

python

import pygame

*.load('张杰 - 逆战.mp3') # 歌曲名要改成你自己的

想听张杰的歌?教你快速找到并播放张杰的所有歌曲

*.play()

while *.get_busy():

*().tick(10)

重点来了:

路径问题: 还是路径问题!不过这回不是中文路径,而是相对路径和绝对路径的问题。一开始我用的相对路径,结果死活放不出来。后来改成绝对路径,OK 了!

想听张杰的歌?教你快速找到并播放张杰的所有歌曲

循环播放: 默认情况下,`pygame` 只放一遍。要想循环播放,得把 `*.play()` 改成 `*.play(-1)`,那个 `-1` 就是无限循环的意思。 控制播放: 光能放还不行,还得能暂停、继续、停止啥的。`pygame` 提供了 `*.pause()`、`*.unpause()`、`*.stop()` 这些方法,用起来也很简单。

最终效果:

写了个简单的命令行界面,可以输入命令来控制播放。虽然简陋,但是能用就行,毕竟咱主要目的是听歌嘛

  • 输入 "play" 开始播放
  • 想听张杰的歌?教你快速找到并播放张杰的所有歌曲

  • 输入 "pause" 暂停
  • 输入 "unpause" 继续播放
  • 输入 "stop" 停止播放
  • 输入 "exit" 退出程序

想听张杰的歌?教你快速找到并播放张杰的所有歌曲

这回折腾,虽然没啥技术含量,但也算是把 `pygame` 的基本用法给摸清楚了。以后想搞点更花哨的,也有个基础了。而且想听老张的歌儿,也更方便了,美滋滋!

PS:

歌曲版权很重要,大家听歌的时候要注意支持正版!

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

相关推荐