Python 2.7 在python中动态显示文本时,如何在后台播放声音?

Python 2.7 在python中动态显示文本时,如何在后台播放声音?,python-2.7,Python 2.7,我想连续播放嘟嘟声,直到文本在终端上动态显示。这是我的密码 import time import sys import winsound winsound.Beep(1000, 5000) def printf(s): for c in s: sys.stdout.write('%s' % c) sys.stdout.flush() time.sleep(0.0203) printf("Hello I am Jishan Bhat

我想连续播放嘟嘟声,直到文本在终端上动态显示。这是我的密码

import time
import sys
import winsound


winsound.Beep(1000, 5000)

def printf(s):

    for c in s:
        sys.stdout.write('%s' % c)
        sys.stdout.flush()
        time.sleep(0.0203)

printf("Hello I am Jishan Bhattacharya.")

你需要这样做,但我的测试显示,你不能将它与Beep一起使用。你可以将声音保存为wav文件

winsound.PlaySound(sound, winsound.SND_ASYNC)

您可以创建一个新线程并开始运行它,创建一个bool来停止线程

没有明显的方法可以使用beep并使其动态停止

import threading

class beeper(threading.Thread):
    def run(self):
        self.keeprunning = True
        while self.keeprunning:
            winsound.Beep(freq, dur) // make a short dur to make sure it stops soon after printing ends
beep =  beeper()
beep.start()
printf(string)
beep.keeprunning = False

这听起来像是多线程,resp multi processing如果第一个线程不工作,您可以将beep作为另一个线程执行,并写入文本,因此它们将并行执行。多线程更简单,但也有可能因为python而无法工作,GIL python无法实际使用线程,只有快速切换执行路径请将“winsound.beep”编辑为“winsound.beep”。我试过你的代码,但问题是,在文本显示完成后,嘟嘟声也会继续。添加了一个stop子句,使持续时间变短,以便验证它是否应该运行你的代码,但这次它会动态打印文本无限次,而且嘟嘟声之间也会发生中断,这似乎很奇怪。