我一直在用 Tkinter 进行一些应用程序构建,但我偶然发现了一个问题,即关闭主Tk()
窗口不会杀死底层的 python shell。我很快意识到 python-vlc 实际上导致程序一直等到我播放的歌曲停止。
我认为简单地放置 andexit()
或quit()
之后root.mainloop()
就足够了,但是在窗口关闭后它似乎并没有执行它,所以我意识到我需要的是一种在窗口时调用 Mediaplayer.stop() 函数的方法已经关了。
注意:不是我的实际代码,而是行为示例
import vlc
class Manager():
def __init__(self):
self.root = Tk()
self.song = vlc.Mediaplayer("Song.mp3")
song.start()
self.root.mainloop()
print("Killing Program...")
exit()
当 self.root 关闭时:
预期:歌曲停止,python shell 关闭。
观察到:歌曲在 python shell 关闭之前播放n秒。
注意:我在终端中将文件作为 .pyw 文件运行,不知道这是否会影响任何东西,但是在 IDLE 或我的 IDE(Jupyter Lab)中运行时,我达到了相同的效果。