问题描述
def main():
from playsound import playsound as play
import datetime
time=datetime.datetime.Now()
hour=int(input("Hour of alarm: "))
minute=int(input("Minute of alarm: "))
#sound chooser
alarm=str(input("Alarm,PI,AC,AV,BE,ZE,IO: "))
noise=""
#sound files
if alarm== "PI":
noise="8D_Pure_Imagination.mp3"
elif alarm=="AC":
noise="8D_chill2_noise.mp3"
elif alarm=="AV":
noise="8D_avatar_clip.mp3"
elif alarm=="BE":
noise="8D_Beach.mp3"
elif alarm=="ZE":
noise="8D_zelda_clip.mp3"
elif alarm=="IO":
noise="8D_iroh.mp3"
#sound player
while 1==1:
if time.hour == hour and time.minute == minute:
play(noise)
else:
if time.hour==hour and time.minute== minute:
play(noise)
main()
问题是它只检查一次语句,因此如果您在完全相同的时间播放它,则它可以工作,我希望将其打开,设置一个警报,然后在那时播放声音,但是在检查了如果一次,则停止。
解决方法
如果希望它重新检查时间,则需要在每个循环结束时重新初始化time = datetime.datetime.now()
;否则,time
总是相同。