如何修复python脚本中的延迟/滞后

问题描述 投票:2回答:2

我的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")
python
2个回答
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')

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)
© www.soinside.com 2019 - 2024. All rights reserved.