python - 每当我单击键盘上的特定键时,如何播放音频?
问题描述
所以,我的想法是创建一个程序(使用“键盘”模块),当我按下一个键(在本例中为“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()
注意: 我希望您只需单击一个键而不是两个键。 我希望我解释得很好!我期待一个答案(无论它可能多么愚蠢)。问候, 迪奥戈·马托斯
解决方案
这里:
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 中完成的。(:如果这有帮助,请告诉我......
推荐阅读
- android - 将 YuvToRgbConverter 更改为基于 CameraX 进行旋转和缩放
- javascript - 将 blob 文件从 tiff 转换为 png 以在浏览器上显示
- c# - 如何在 Vue + ASP.NET 中实现数据排序?
- mysql - JDBC将数据从txt文件插入MySql表
- bash - 外部函数 bash 中的 Scriptsteps 计数器
- node.js - 如何纠正此错误“TypeError:EthereumTransaction 不是构造函数”?
- c++11 - 如何使用按位运算将 3 个整数值编码为 uint16_t?
- oracle - 在比较 oracle db 中的模式时,需要忽略标识列的“开始于”序列
- sql - 如果任何 SQL 在循环内失败,如何使 ANT 构建失败
- php - 无法更新表单数据laravel