前一段时间刷b站,看到一些up主制作的Matlab钢琴很火,很好玩的样子
作为 Python 区技术博主,第一想法当然是能否用 Python 也做一个,既好玩也能用于教学,经过一番研究总算折腾出来一个简易版👇
本文就分享一下思路与代码。
实现思路
在写代码之前,还是先整理下思路,用Python实现的话,只需要创建界面与按钮,并给每个按钮绑定播放音阶的函数即可,这样简单的功能肯定用不着PyQt这样的大家伙,tkinter就能完美实现。
下面的问题就转到如何使用Python播放音频文件,首先搜了下,了解到playsound库
from playsound import playsound
playsound('A4.mp3')
就像上面代码展示的一样,两行代码就能播放mp3,但也仅限于此,无法指定播放时长等功能,如果一个音阶时长8s,必须要等上一个播放完毕才能播放下一个,这样的话输出的声音就不能连贯。
继续研究之后发现pygame可以完美实现音频播放与简单处理,并且配合time库可以控制播放时长,例如每个音阶只播放 1s
from pygame import mixer
pygame.mixer.music.play()
time.sleep(10)
pygame.mixer.music.stop()
但是这样的话,在两个音阶之间切换时会有一