登峰造极境

  • WIN
    • CSharp
    • JAVA
    • OAM
    • DirectX
    • Emgucv
  • UNIX
    • FFmpeg
    • QT
    • Python
    • Opencv
    • Openwrt
    • Twisted
    • Design Patterns
    • Mysql
    • Mycat
    • MariaDB
    • Make
    • OAM
    • Supervisor
    • Nginx
    • KVM
    • Docker
    • OpenStack
  • WEB
    • ASP
    • Node.js
    • PHP
    • Directadmin
    • Openssl
    • Regex
  • APP
    • Android
  • AI
    • Algorithm
    • Deep Learning
    • Machine Learning
  • IOT
    • Device
    • MSP430
  • DIY
    • Algorithm
    • Design Patterns
    • MATH
    • X98 AIR 3G
    • Tucao
    • fun
  • LIFE
    • 美食
    • 关于我
  • LINKS
  • ME
Claves
长风破浪会有时,直挂云帆济沧海
  1. 首页
  2. 未分类
  3. 正文

Python 定时播放音乐

2017-12-04

python定时播放音乐

#!/usr/bin/python3
# -*- coding: UTF-8 -*-
import time
import pygame
import os
import random
import logging
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.schedulers.blocking import BlockingScheduler

def play_music(music_file):
    try:
        pygame.mixer.init()
        pygame.mixer.music.load(music_file.encode('utf-8'))
        pygame.mixer.music.play()
        pygame.mixer.music.set_volume(1)
        while True:
            if pygame.mixer.music.get_busy():
                time.sleep(1)
            else:
                print("file play over")
                return
    finally:
        pass
def play_all():
    try:
        music_list = []
        # 获取文件运行路径
        path = os.path.split(os.path.realpath(__file__))[0]
        # 获取music文件夹路径
        music_path = path + '/musics'
        # 将文件添加至播放队列
        for f in os.listdir(music_path):
            tmp_path = os.path.join(music_path, f)
            if not os.path.isdir(tmp_path):
                music_list.append(tmp_path)
        # 随机打乱队列
        random.shuffle(music_list)
        # 依次播放
        for music in music_list:
            play_music(music)
    finally:
        pass

if __name__ == "__main__":
    logging.basicConfig(level=logging.DEBUG, format='[%(asctime)s] [%(levelname)s] [%(name)s] %(message)s', datefmt='%Y/%m/%d %H:%M:%S')
    logger = logging.getLogger('%s' % 'job')
    logger.info("start!")
    while True:
        try:
            sched = BlockingScheduler()
            # 添加定时播放音乐的任务
            sched.add_job(play_all, 'cron', day_of_week='*', hour='23', minute="47", second="0")
            sched.start()
        finally:
            pass
    logger.info("end!")

 

标签: 暂无
最后更新:2017-12-04

代号山岳

知之为知之 不知为不知

点赞
< 上一篇
下一篇 >

COPYRIGHT © 2099 登峰造极境. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

蜀ICP备14031139号-5

川公网安备51012202000587号