【问题标题】:Playing an audio file partially for an Alarm program in python在python中为警报程序部分播放音频文件
【发布时间】:2019-08-01 12:55:03
【问题描述】:

我在 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 命令一无所知

【问题讨论】:

  • 鉴于您没有显示您的代码,我不确定您希望任何人如何提供帮助。
  • 我确实知道子流程。但我不会一直坐在办公桌前等待您更新您的问题。我建议您阅读如何询问未来问题的指南。 stackoverflow.com/help/how-to-ask
  • 现在支持他

标签: python linux bash subprocess


【解决方案1】:

如果你可以使用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

【讨论】:

  • 感谢您的帮助。
  • 不客气!如果我的回答对您有帮助,请投票并将问题标记为已回答! :)
  • 我很抱歉,但它不允许我投票......我很抱歉。
猜你喜欢
  • 1970-01-01
  • 2013-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-25
  • 2011-11-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多