当我按下键盘键时,Windows 可以播放声音吗?
Posted
技术标签:
【中文标题】当我按下键盘键时,Windows 可以播放声音吗?【英文标题】:Can windows play sound when I press a keyboard key? 【发布时间】:2019-10-07 13:12:51 【问题描述】:我发现an application 允许你这样做,我想知道这是否可以通过任何内置程序来完成(我不是指 Caps Lock、Num Lock 单选按钮,它们的声音可以打开在控制面板中)?这可以使用下面的代码在 python 上完成,但我的winsound.PlaySound
不想找到该文件,只是播放错误的系统声音。这个answer 没有帮助(通过 sys 或创建文件夹)。
代码:
import winsound
import keyboard
duration = 250
q = 300
while True:
try:
if keyboard.is_pressed('q'):
winsound.PlaySound('C:\\some.wav',winsound.SND_FILENAME)
winsound.Beep(q, duration)#Since PlaySound does not want to search, you have to do it through squeak
except:
break
【问题讨论】:
“不想找到文件”是什么意思?您总是需要告诉程序在哪里找到文件,没有“找到”...... @h4z3,是的,但是即使我指定了路径,那么 mp3 或 wav 文件(尝试不同)仍然无法播放 【参考方案1】:几个月前我在 VB.net 中发现了类似的东西
因此,我建议您不要使用winsound
,而是使用simpleaudio 包。
import simpleaudio as sa
filename = 'myfile.wav'
wave_obj = sa.WaveObject.from_wave_file(filename)
play_obj = wave_obj.play()
play_obj.wait_done() # Wait until sound has finished playing
from pynput.keyboard import Listener
import simpleaudio as sa
filename = 'music.wav'
wave_obj = sa.WaveObject.from_wave_file(filename)
def on_press(key):
if key.char == 'q':
play_obj = wave_obj.play()
play_obj.wait_done()
with Listener(on_press=on_press) as listener:
listener.join()
【讨论】:
也许我做错了什么?我按照你说的做了一切,但是按q后,声音不播放,程序结束。while True: try: if keyboard.is_pressed('q'): filename = 'some.wav' wave_obj = sa.WaveObject.from_wave_file(filename) play_obj = wave_obj.play() play_obj.wait_done() elif keyboard.is_pressed('w'): winsound.Beep(w, duration) else: pass except: break
添加了一个带有关键监听器的实现以上是关于当我按下键盘键时,Windows 可以播放声音吗?的主要内容,如果未能解决你的问题,请参考以下文章