基础Python声音编程

0 投票
2 回答
2031 浏览
提问于 2025-04-17 04:27

我想写一个程序,当我按住一个键的时候,它能发出我自己定义的音调。我可以用winsound.Beep()来播放不同的音符,但我觉得这并不太有用。

2 个回答

0

winsound模块不仅可以发出哔哔声,还能播放其他声音,具体可以看看winsound.PlaySound

winsound.PlaySound('mySound.wav', winsound.SND_FILENAME)

当用户按住一个键时,通常会在短时间内接收到多个按键事件。

1

如果你只是想使用标准库,并且你正在使用Windows系统,可以用msvcrt这个库来获取当前按下的键,然后把这个键映射到一个频率上。

import msvcrt
import time
import winsound

notes = {'a': 440, 's': 935, 'd': 1039}

while True:
    key = msvcrt.getch()
    try:
        note = notes[key]
    except KeyError:
        note = 0

    winsound.Beep(note, 10)
    time.sleep(0.01)

撰写回答