炎炎設(shè)計(jì)
2023-03-08 15:02:25
我正在制作語(yǔ)音助手,當(dāng)我說“設(shè)置鬧鐘”時(shí),程序凍結(jié)并等待鬧鐘設(shè)置的時(shí)間。所以在鬧鐘響起之前我不能和助理說話。這是代碼if 'alarm' in said: engine.say('Set') engine.runAndWait() now = datetime.datetime.now() alarm_time = datetime.datetime.combine(now.date(), datetime.time(int(said))) time.sleep((alarm_time - now).total_seconds()) os.system("start alarm.mp3")如何忽略它或?qū)Τ绦蜃鲆恍┦虑橐允蛊洳粫?huì)凍結(jié)?也許還有其他設(shè)置鬧鐘的方法?幫助將不勝感激!
1 回答

30秒到達(dá)戰(zhàn)場(chǎng)
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊
您可以創(chuàng)建一個(gè)將在指定時(shí)間內(nèi)運(yùn)行的線程。sleep
睡眠線程不會(huì)阻塞主線程,所以它會(huì)繼續(xù)執(zhí)行。
import threading, time, os
def thread_func(seconds):
time.sleep(seconds)
os.system("start alarm.mp3")
threading.Thread(
target=thread_func,
args=((alarm_time - now).total_seconds(), ),
daemon=True
).start()
# Do something else here
os.system 將阻止執(zhí)行,但應(yīng)該相當(dāng)快。
添加回答
舉報(bào)
0/150
提交
取消