import datetime
import os
import time
import pygame
from pygame import mixer
from pygame.locals import USEREVENT
STOPEVENT = USEREVENT + 1 #音乐停止事件
h = 9 # 时间
m = 26 # 分钟
play_long = 60 * 10 # 播放时长
def play(start):
paths = os.listdir(".") #当前目录下所有文件
def ismp3(path):
return path.endswith(".mp3")
paths = list(filter(ismp3, paths)) #保留mp3文件
if len(paths) > 0:
cur = 0
mixer.init()
pygame.init()
mixer.music.set_endevent(STOPEVENT) #设置音乐停止事件
mixer.music.load(paths[cur].encode("utf-8")) #加载,支持中文文件名
mixer.music.play() #播放
#当超过播放时长后,停止播放
while (datetime.datetime.now() - start).seconds < play_long:
time.sleep(1) #1秒监听一次事件
event = pygame.event.poll()
if event.type == STOPEVENT:
cur += 1
if cur != len(paths):
mixer.music.load(paths[cur].encode("utf-8")) #支持中文文件名
mixer.music.play()
else:
break;
pygame.quit()
def detect():
while True:
now = datetime.datetime.now()
if now.hour == h and now.minute == m:
play(now)
else:
time.sleep(1)
if __name__ == "__main__":
detect()