今天跟大家唠唠嗑,说说我怎么在家用代码放张杰的歌儿。
事情是这么开始的,那天我躺在沙发上,突然就想听张杰的《逆战》了,但是手机不在手边,用音响还得连蓝牙,嫌麻烦。作为一个程序员,脑子里第一个想法就是:能不能写个程序,敲个命令,直接让电脑放歌?
说干就干,我先在网上搜了搜,看看有没有现成的轮子可以用。结果发现,播放音乐这事儿,方法还挺多的。有用 Python 的,有用 * 的,还有直接调用系统命令的。
我寻思着,既然是自己用,那就怎么简单怎么来。我电脑上装了 Python,那就用 Python 。
我需要一个 Python 库来播放音乐。搜了一下,`pygame` 看起来不错,用的人挺多。直接 `pip install pygame` 装上。
装好之后,我就开始写代码了。
python
import pygame
def play_music(file_path):
*.load(file_path)
*.play()
if __name__ == '__main__':
music_file = 'C:/Users/你的用户名/Music/张杰 - 逆战.mp3' # 改成你自己的音乐文件路径
play_music(music_file)
这段代码很简单,就是初始化 `pygame`,然后加载音乐文件,播放。
但是,问题来了。我把代码复制到我的电脑上,然后运行。
结果报错了!
报错信息大概是说,`pygame` 找不到我的音乐文件。
我仔细一看,发现是路径的问题。我把代码里的路径改成了我电脑上音乐文件的实际路径。
再运行,还是报错!
这回报错信息变成了:`pygame` 不支持这个音乐文件的格式。
我这才想起来,`pygame` 对音乐格式是有要求的。它支持 `wav`、`mp3` 等格式,但是有的 `mp3` 文件可能因为编码问题无法播放。
怎么办?
简单!把 `mp3` 转成 `wav`。
我用了一个在线的音频转换工具,把 `mp3` 文件转成了 `wav` 文件。
然后,我把代码里的文件路径改成 `wav` 文件的路径。
再次运行。
这回终于成功了!
电脑里传出了《逆战》的旋律。
但是,新的问题又来了。
程序播放完一遍就结束了,我想让它循环播放。
怎么办?
继续改代码。
python
import pygame
def play_music(file_path, loop=0): # loop=0 表示无限循环
*.load(file_path)
*.play(loop)
if __name__ == '__main__':
music_file = 'C:/Users/你的用户名/Music/张杰 - 逆战.wav' # 改成你自己的音乐文件路径
play_music(music_file)
我给 `play_music` 函数增加了一个 `loop` 参数,默认值是 0,表示无限循环。
然后,我把 `*.play()` 函数的参数改成了 `loop`。
再次运行。
这回真的完美了!
电脑开始无限循环播放《逆战》。
我躺在沙发上,一边听着歌,一边感慨:程序员的快乐,就是用代码解决生活中的小问题。
后来我又稍微优化了一下代码,把它封装成了一个函数,可以接受不同的音乐文件路径,还加了一些简单的错误处理。
我想听张杰的歌,只需要在命令行输入 `python play_* "C:/Users/你的用户名/Music/张杰 - 歌曲名.wav"` 就可以,非常方便。
这只是一个很简单的例子。如果你想实现更复杂的功能,比如歌词同步、播放列表管理等等,还需要学习更多的 Python 库和知识。
用代码解决问题,真的很有趣!