暂停(python 3)音乐文件?

暂停(python 3)音乐文件?,python,tkinter,audio-player,Python,Tkinter,Audio Player,用户解决问题的时间有限。在这个程序中,我在GUI(tkinter)计时器的同时运行一个音乐文件,它们都在时间结束时完成。有些用户可能会提前完成。我想让音乐在他们关闭计时器窗口时停止winsound'不接受'stop()',我使用'winsound.SND_PURGE'没有成功。这比我想象的要复杂。我试过这个: # python 3.5 winsound.PlaySound('The Countdown.wav', winsound.SND_FILENAME) root = Tk()

用户解决问题的时间有限。在这个程序中,我在GUI(tkinter)计时器的同时运行一个音乐文件,它们都在时间结束时完成。有些用户可能会提前完成。我想让音乐在他们关闭计时器窗口时停止winsound'不接受'stop()',我使用'winsound.SND_PURGE'没有成功。这比我想象的要复杂。我试过这个:

# python 3.5     

winsound.PlaySound('The Countdown.wav', winsound.SND_FILENAME)

root = Tk() # IMAGINE this is a box with a number ticking down
root.mainloop()

root.protocol("WM_DELETE_WINDOW", winsound.SND_PURGE) # nothing happens :(
有没有一种使用旗子的方法?也许是另一种音频文件播放器?有什么事吗


如果有,请告诉我。谢谢

winsound.SND_PURGE
只是一个整数常量,恰好值为64(此外,还记录为“现代Windows平台不支持”)。您希望root.protocol()如何处理它?您需要传递一个在窗口关闭时调用的函数。它看起来像:

lambda: winsound.PlaySound(None, 0)
这是一个停止声音播放的合适功能,尽管我还没有实际测试过


我认为您还需要将
winsound.SND_ASYNC
添加到原始PlaySound调用的标志中,否则您的窗口在声音完成之前都不会打开。

关闭窗口后会出现错误:“无法调用“wm”命令:应用程序已被销毁”。有办法吗?我的错:我把主循环放在第一位。但现在我有另一个问题。当我点击十字架关闭窗口时,声音停止了。但是窗户一直开着。当我在“root.protocol”中添加“root.destroy”时,出现了一个错误“wm_protocol()接受1到3个位置参数,但给出了4个”。如果在单击关闭框时需要执行多个操作,则需要编写一个函数来执行所有操作(lambda不再足够),并将其传递给wm_协议。Genius+1.谢谢