gpt4 book ai didi

python - PlaySound() 减慢进程

转载 作者:行者123 更新时间:2023-11-28 18:38:22 24 4
gpt4 key购买 nike

我的程序中有以下代码:

self["text"]="✖"              
self["bg"]="red"
self["relief"] = SUNKEN
self.banged = True
self.lost = True
self.lettersLeft = 0
self.lettersBanged = self.lettB
winsound.PlaySound('sound.wav', winsound.SND_FILENAME)
messagebox.showerror("Letter Banging","Sorry, you lost the game!", parent=self)
for key in self.squares.keys():
if self.squares[key].value == 3:
self.squares[key].banged = False
self.squares[key].expose()

我刚刚添加了 winsound.PlaySound('sound.wav', winsound.SND_FILENAME) 部分,它减慢了我的程序。事实上,它先播放声音,然后再执行之前的操作。我将 Python 与 tKinter 一起使用。有什么建议吗?

最佳答案

当您更改小部件的属性时,例如编辑内容、背景和浮雕,此更改不会立即出现,它们会被记录下来,并且只有在您将手交给主循环时才会生效,这会引发应用程序的重绘。这会导致您观察到的行为:播放声音,然后回调结束,并重新绘制以显示您的更改。

在回调播放声音的所有时间里,您的应用程序都不会响应。如果您估计您的声音足够短,您可以在您想要首先显示的 UI 更改和调用 PlaySound 之间的某处添加 self.update()

如果你想避免在你的应用程序中出现任何无响应,你可以在另一个线程中播放声音

sound_thread = threading.Thread(target=lambda:winsound.PlaySound('sound.wav', winsound.SND_FILENAME))
sound_thread.start()

关于python - PlaySound() 减慢进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30093987/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com