我们正在大学里做一个学期项目,我们遇到了以下问题。
使用pygame,
我们首先在右耳中播放一种声音,然后在左耳中播放。当声音开始播放时,它将在后台循环播放10次。
然后它将调用以increase_volume
结尾的函数tkinter.after(500, increase_volume)
。
我们的问题是我们需要播放12种声音。最初的声音效果完美。
但是当我们停止第一个声音并开始第二个声音时,很快就会发现increase_volume
函数不再每500毫秒调用一次,而是更快。每个声音的通话速度越来越快。它看起来几乎呈指数增长。对于程序而言至关重要的是,它仅每500毫秒增加一次。但是我们似乎无法为此找到解决方案。
有什么建议吗?
def increase_volume(self):
volume = pygame.mixer.music.get_volume()
print (volume)
print (datetime.now().time())
if volume < 1.0:
new_volume = volume + 0.01
pygame.mixer.music.set_volume(new_volume)
self.after(500, self.increase_volume)
def play_right_ear(self):
volume = 0.0
pygame.mixer.music.load("../Frekvensafspiller/justerede_lydfiler/" + str(self.frequency) + "Hz_R.mp3")
pygame.mixer.music.set_volume(volume)
pygame.mixer.music.play(10)
self.increase_volume()
def play_left_ear(self):
volume = 0.0
pygame.mixer.music.load("../Frekvensafspiller/justerede_lydfiler/" + str(self.frequency) + "Hz_L.mp3")
pygame.mixer.music.set_volume(volume)
pygame.mixer.music.play(10)
if self.frequency <= 8000:
self.frequency = self.frequency * 2
self.increase_volume()