gpt4 book ai didi

python - 按下长按按钮后pygame播放声音

转载 作者:行者123 更新时间:2023-12-03 02:10:52 25 4
gpt4 key购买 nike

对于我的大学项目,我想写一点,我们称之为“仪器”。
因此,只要按下指定的按钮,我就想播放声音(正弦波)。

到目前为止,我是这样的:

#create a sine array with frequency, samplerate and duration:
def sine(freq, samplerate, duration):
duration = duration * samplerate
wave = [math.sin(2.0 * math.pi * freq * t / samplerate) for t in range(0, duration)]
return numpy.array(wave)

# this is the point int the main loop where the sound has to be played
if key[pygame.K_p]:
pygame.sndarray.make_sound(sine(440, 44100, duration).play()

问题是,如果我按下按钮,它将在设置的持续时间内播放,并在每次循环识别到我按下按钮时将其覆盖。

我认为它应该与获取当前时间以及我释放按钮的时间一起工作,但不知道如何实现它。

也许您对我有一些办法。

最佳答案

您可以只在“持续时间”秒内处理播放声音的if语句,以便最后一个声音文件就像下一个声音文件开始一样结束。

您也可以尝试以这种方式使用pygame.mixer.sound来播放任何声音。然后,使用.play方法,它可以播放10000次,并在释放按钮时叫停。

我如何建议释放和按下按钮的测试在另一个变量中保持按钮的最后状态。例如

pWasPressed = pygame.K_p

然后让你的if语句是

如果(pWasPressed = false和pygame.K_p):

这只会在您第一次按下该键时触发,而不是在每次循环运行时都继续运行if语句。

希望能有所帮助。

关于python - 按下长按按钮后pygame播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24245819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com