在python中为报警程序部分播放音频文件

2024-04-27 21:34:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我用python创建了一个报警,我想在达到报警时间后播放音频曲目的前10秒

我尝试使用subprocess.call,但10秒后无法终止代码,例如:

subprocess.call(["/usr/bin/vlc", "/home/panos/Desktop/U TUBE/SRW α3 - Battle God of Steel.webm"])

这会播放曲目,但我不知道如何在10秒后停止播放,也不知道在警报打开时如何不显示实际的VLC播放器。 我还有其他选择吗?我可以用子流程做些什么吗。 我认为bash有命令可以播放10秒钟的音频,所以我可以从subprocess调用它,但我对bash命令一无所知


Tags: 代码命令bash报警homebinusr时间
1条回答
网友
1楼 · 发布于 2024-04-27 21:34:15

如果您可以使用subprocess.check_output,那么它有timeout参数,您可以对其进行设置

import subprocess

command = ["/usr/bin/vlc", "/home/panos/Desktop/U TUBE/SRW α3 - Battle God of Steel.webm"]

try:
    x=subprocess.check_output(command, shell=True, timeout=5)
except subprocess.TimeoutExpired as exc:
    print("Command timed out: {}".format(exc))

我已经用sleep命令对它进行了测试,它按预期工作

import subprocess

try:
    x = subprocess.check_output(["sleep", "10"], timeout=5)
except subprocess.TimeoutExpired as exc:
    print("Command timed out: {}".format(exc))

输出:

>>> python3 timeout.py 
Command timed out: Command '['sleep', '10']' timed out after 5 seconds

相关问题 更多 >