我希望我的代码执行此操作,但是要在后台播放音乐:
import time
while True:
print ('ligma')
time.sleep(1.5)
我尝试过:
import time
import winsound
while True:
print ('ligma')
time.sleep(1.5)
winsound.PlaySound("dank", winsound.SND_ALIAS)
但是,它会重复声音然后来重复单词。我希望它能重复单词并同时播放声音。
答案 0 :(得分:1)
您需要在另一个线程上播放声音,以便您的其他代码可以同时执行。
import time
import winsound
from threading import Thread
def play_sound():
winsound.PlaySound("dank", winsound.SND_ALIAS)
while True:
thread = Thread(target=play_sound)
thread.start()
print ('ligma')
time.sleep(1.5)
编辑: 我已经将线程声明移入了循环。我最初的回答是在循环之外创建的,这引起了RuntimeError。在此处了解更多信息:https://docs.python.org/3/library/threading.html#threading.Thread.start
答案 1 :(得分:0)
这称为异步声音,PlaySound
上的winsound.SND_ASYNC
标志可让您在代码继续执行的同时播放声音:
winsound.PlaySound("dank", winsound.SND_ALIAS|winsound.SND_ASYNC)
从内存中,这将为您提供单个声音通道,即播放其他声音将切断当前播放的任何声音。如果需要更多的并行播放,则需要类似PyGame的内容。