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()
本文介绍了一个使用Python编写的定时音乐播放器程序。该程序能够自动检测当前目录下的MP3文件,并在设定的时间(例如9:26)开始播放音乐。播放器会循环播放所有MP3文件,直到达到预设的播放时长。程序利用了pygame库来处理音频播放,并通过事件监听机制实现了音乐的自动切换。
2408

被折叠的 条评论
为什么被折叠?



