前几天上课老师给我们讲了两个模块,然后利用这两个模块来模拟钢琴键盘去简单地演奏《数鸭子》今天来分享给大家。
模块1:winsound
模块2:keyboard
winsound: winsound模块提供对windows平台的基本声音播放功能的访问,他还包含函数和一些常量。
1.安装winsound模块
在cmd窗口下输入
pip install winsound
2.导入模块
import winsound
3.winsound模块下的函数
winsound.Beep(frequency, duration)
哔哔声PC扬声器,频率参数frequency
指定声音的频率,以Hz为单位,必须在37~32767的范围内。持续时间参数duration
指定声音应该持续的毫秒数。如果系统不能发出喇叭声,会提RuntimeError
错误。
因为这里能用到的函数就一个,其他的函数就不过多解释了。
keyboard:keyboard模块就很容易理解了,就是用来控制键盘的相关事件。
1.安装模块
pip install keyboard
2.导入模块
import keyboard
以下就是keyboard模块的基本功能
1.允许我们阻止特定按钮的动作
2.我们可以使用点击监视器从键盘管理意图
3.跨平台兼容性
4.支持键盘上可用的特殊热键。
现在直接上干货↓
《数鸭子》简谱
源代码:
import winsound # 导入winsound模块
import keyboard # 导入keyboard模块
while True: # 循环
# 中音
# Returns True if the key is pressed,如果被按下就发出声音
if keyboard.is_pressed('1'):
winsound.Beep(262*2, 400)
if keyboard.is_pressed('2'):
winsound.Beep(294*2, 400)
if keyboard.is_pressed('3'):
winsound.Beep(330*2, 400)
if keyboard.is_pressed('4'):
winsound.Beep(349*2, 400)
if keyboard.is_pressed('5'):
winsound.Beep(392*2, 400)
if keyboard.is_pressed('6'):
winsound.Beep(440*2, 400)
if keyboard.is_pressed('7'):
winsound.Beep(494*2, 400)
# 低音
# Returns True if the key is pressed,如果被按下就发出声音
if keyboard.is_pressed('z'):
winsound.Beep(262, 400)
if keyboard.is_pressed('x'):
winsound.Beep(294, 400)
if keyboard.is_pressed('c'):
winsound.Beep(330, 400)
if keyboard.is_pressed('v'):
winsound.Beep(349, 400)
if keyboard.is_pressed('b'):
winsound.Beep(392, 400)
if keyboard.is_pressed('n'):
winsound.Beep(440, 400)
if keyboard.is_pressed('m'):
winsound.Beep(494, 400)
# 高音
# Returns True if the key is pressed,如果被按下就发出声音
if keyboard.is_pressed('a'):
winsound.Beep(294*2, 400)
if keyboard.is_pressed('s'):
winsound.Beep(294*2, 400)
if keyboard.is_pressed('d'):
winsound.Beep(294*2, 400)
if keyboard.is_pressed('f'):
winsound.Beep(294*2, 400)
if keyboard.is_pressed('g'):
winsound.Beep(294*2, 400)
if keyboard.is_pressed('h'):
winsound.Beep(294*2, 400)
if keyboard.is_pressed('j'):
winsound.Beep(294*2, 400)
else:
pass
# 琴键上的高音"do"是电脑上的"a"键,要注意一下
运行结果:
直接在运行框里输入就行,运行框内的空格和竖线是为了更好的理解。
如果还想演奏其他的音乐可以自己百度搜索,或者私信留言我领取素材。
初次创作如果有不好的地方多多包涵,如果觉得不错麻烦点个关注,后期会有更多精彩文章。有疑问和更好的建议欢迎评论区探讨交流。