首页 > 解决方案 > 每当我单击键盘上的特定键时,如何播放音频?

问题描述

所以,我的想法是创建一个程序使用“键盘”模块),当我按下一个键(在本例中为“Enter”)时,一旦我停止播放声音(只播放一次)按下该键,将播放另一种声音(仅一次)。 换句话说,NASA使用一种通信系统,其中,当“呼叫”开始时,会播放“哔哔”声,当“呼叫”结束(如“结束”)时,会再次播放“哔哔声”。 这是我的第一次尝试:

import keyboard
import pygame

def BeepOn():
    pygame.mixer.init()
    pygame.mixer.music.load("Mic On.mp3")
    pygame.mixer.music.play(loops=0)
    pygame.mixer.music.set_volume(0.50)

def BeepOff():
    pygame.mixer.init()
    pygame.mixer.music.load("Mic Off.mp3")
    pygame.mixer.music.play(loops=0)
    pygame.mixer.music.set_volume(0.50)

while True:
    if keyboard.on_press_key('Enter'):
        BeepOn()

    if keyboard.on_release_key('Enter'):
        BeepOff()

    if keyboard.is_pressed('End'):
        exit()

注意: 我希望您只需单击一个键而不是两个键。 我希望我解释得很好!我期待一个答案(无论它可能多么愚蠢)。问候, 迪奥戈·马托斯

标签: pythonaudiopygamekeyboardkey

解决方案


这里:

import pygame

#Condition for while loop
running = True



def BeepOn():
    pygame.mixer.init()
    pygame.mixer.music.load("Mic On.mp3")
    pygame.mixer.music.play(loops=0)
    pygame.mixer.music.set_volume(0.50)

def BeepOff():
    pygame.mixer.init()
    pygame.mixer.music.load("Mic Off.mp3")
    pygame.mixer.music.play(loops=0)
    pygame.mixer.music.set_volume(0.50)


while running:
    
    for event in pygame.event.get():
            #Tests for quit
            if event.type == pygame.QUIT:
                running = False
            #Tests if enter is pressed
            if event.type = pygame.KEYDOWN:
              if Event.key == pygame.K_RETURN:
                BeepOn()

            #Tests if enter is released
            if event.type = pygame.KEYUP:
              if Event.key == pygame.K_RETURN:
                BeepOff()
pygame.quit()

我希望这会有所帮助,我对键盘模块不熟悉,所以我只是从 pygame 中完成的。(:如果这有帮助,请告诉我......


推荐阅读