我正在制作語音助手,當我說“設置鬧鐘”時,程序凍結并等待鬧鐘設置的時間。所以在鬧鐘響起之前我不能和助理說話。這是代碼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")如何忽略它或對程序做一些事情以使其不會凍結?也許還有其他設置鬧鐘的方法?幫助將不勝感激!
1 回答

30秒到達戰場
TA貢獻1828條經驗 獲得超6個贊
您可以創建一個將在指定時間內運行的線程。sleep
睡眠線程不會阻塞主線程,所以它會繼續執行。
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 將阻止執行,但應該相當快。
添加回答
舉報
0/150
提交
取消