用户解决问题的时间有限。在程序中,我同时运行一个音乐文件和一个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 :(有没有使用标志的方法?也许是一个替代的音频文件播放器?什么都行?
如果你这样做了,请告诉我。谢谢!
发布于 2017-02-28 03:17:11
winsound.SND_PURGE只是一个整数常量,值恰好是64 (而且文档中写着“现代视窗平台不支持”)。你希望root.protocol()用它做什么?当窗口关闭时,您需要传递一个要调用的函数。看起来是这样的:
lambda: winsound.PlaySound(None, 0)将是一个适合停止声音播放的函数,尽管我还没有实际测试过它。
我认为您还需要在原始PlaySound调用的标志中添加winsound.SND_ASYNC,否则您的窗口甚至在声音结束之前都不会打开。
https://stackoverflow.com/questions/42473517
复制相似问题