【问题标题】:Stop a thread by a tkinter trigger?通过 tkinter 触发器停止线程?
【发布时间】:2014-03-10 15:01:09
【问题描述】:

我正在制作一个显示消息框并同时通过线程播放 .wav 文件的程序。问题是,声音文件很大,我希望在按“确定”后停止播放。任何帮助,将不胜感激。我在 Windows 7 上使用 Python 3.3。这是我的盒子和音频代码:

t1 = threading.Thread(target=winsound.PlaySound, args=("C:/Interactive Program/LIP Source Files/skyisup.wav", 2))
t1.start()
lipgui.msgbox("The sky is up!")

【问题讨论】:

  • &当你按下“确定”时实际发生了什么?
  • 程序没有返回到菜单,因为它被告知在循环中执行,并且音频只是继续播放!
  • &你是如何杀死音频的...请提供更多相关代码
  • 我尝试通过运行 t1.join() 来停止线程,但没有成功。我还尝试运行 winsound.PlaySound(None, 2) 来尝试停止声音。
  • join 方法不等待线程完成吗?或者这就是我读到的,我还没有真正使用过。

标签: multithreading windows-7 tkinter python-3.3


【解决方案1】:

我修好了。我需要做的是将 winsound.SND_ASYNC 传递给 winsound.PlaySound() 而不是“2”。然后通过传递 winsound.PlaySound(None, 0) 停止音频!

【讨论】:

    猜你喜欢
    • 2010-12-11
    • 1970-01-01
    • 2014-02-23
    • 2013-01-22
    • 2012-05-06
    • 2021-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多