目前我的代码如下:
subscription : Subject;
如果按下按钮,它将播放音乐。现在我想要,如果我按下按钮并且当前正在播放音乐,我想要阻止它。
答案 0 :(得分:0)
您可以在班级中创建一个属性(在__init__ constructor
中),如
self.sound_running = False
然后当你开始播放声音时,在你的play_sound
方法中将它传递给True,在检查之后它还没有设置为True,如果是,你可以打电话:
mixer.music.stop()
或 mixer.music.fadeout(1000)#time in milliscond
self.sound_running = False # and reset attribute to False
此外,您应该初始化混音器一次(在构造函数中)
def __init__(self, master=None):
Frame.__init__(self, master)
self.pack()
self.is_running = False
mixer.init()
self.createWidgets()
def play_sound(self):
if self.is_running:
mixer.music.fadeout(1000)
self.is_running = False
else:
self.is_running = True
mixer.music.load('music.mp3')
mixer.music.play()
最后一行应该是:
app = Application(master=root)
root.mainloop()
(当你关闭它时,你的方式会抛出错误)
用你的节奏盒玩得开心!