HALT (python 3) 音乐文件?

HALT (python 3) a music file?

用户解决问题的时间有限。在程序中,我 运行 一个音乐文件同时作为一个 GUI (tkinter) 定时器,它们都在时间到了时完成。有些用户可能会提前完成。我想让音乐在他们关闭计时器时停止 window。 '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(此外,记录为 "not supported on modern Windows platforms")。您希望 root.protocol() 用它做什么?您需要传递一个函数,以便在 window 关闭时调用。看起来像:

lambda: winsound.PlaySound(None, 0)

将是一个适合停止声音播放的函数,尽管我还没有实际测试过它。

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