Pygame - 检测音乐是否播放并停止播放

时间:2017-07-12 17:54:21

标签: python tkinter pygame

目前我的代码如下:

subscription : Subject;

如果按下按钮,它将播放音乐。现在我想要,如果我按下按钮并且当前正在播放音乐,我想要阻止它。

1 个答案:

答案 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()

(当你关闭它时,你的方式会抛出错误)

用你的节奏盒玩得开心!