tkinter问题之后,ms呈指数增长

时间:2018-12-14 09:56:29

标签: python tkinter pygame

我们正在大学里做一个学期项目,我们遇到了以下问题。

使用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()

0 个答案:

没有答案