我有我的python脚本,当当前时间与文本文件中指定的时间匹配时,该脚本会执行mp3。但是,一切正常,但是我注意到mplayer播放mp3文件之前有大约18秒的延迟和延迟。
是否有一些方法可以使我的python脚本更好,以摆脱18秒的滞后并使mp3文件立即播放?
这是我的python脚本:
#!/usr/bin/python
# -*- coding: utf-8 -*-
# import libraries
import json
import urllib2
from bs4 import BeautifulSoup
import requests
import datetime
import playsound
import os
import subprocess
dateSTR = datetime.datetime.now().strftime('%H:%M')
f = open('/home/pi/test.txt','r')
messagetest = f.read()
newnametest = messagetest.replace("\n","")
f.close()
if (dateSTR) == (newnametest):
os.system("mplayer -ao alsa:device=bluealsa /home/pi/test.mp3")
答案 0 :(得分:0)
我将创建一个循环,类似于:
from time import sleep
from datetime import datetime
...
done = []
while 1:
dateSTR = datetime.now().strftime('%H:%M')
if (dateSTR) == (newnametest) and not dateSTR in done:
done.append(dateSTR)
os.system("mplayer -ao alsa:device=bluealsa /home/pi/test.mp3")
sleep(1)
答案 1 :(得分:0)
在实际需要以下操作之前,请尝试在子过程中启动mplayer
:
p = subprocess.Popen('mplayer -slave -idle -ao alsa:device=bluealsa', shell=True, stdin=subprocess.PIPE)
那应该启动mplayer
并在需要时等待它。然后,当您要播放文件时,请执行以下操作:
p.communicate(input=b'loadfile /home/pi/test.mp3\n')