我第一次使用Python和Raspberry Pi(它是Pi 2)并尝试触发一组定时命令。除了最后一点,我已经弄清楚了大部分内容,我想杀死所有进程。
逻辑如下:
- 触发名为"倒计时"
的音频文件(.wav)- 触发另一个名为" dixie"
的音频文件(.wav)- 当dixie正在播放触发wget命令以触发我相机上的照片时
- 继续比赛" dixie"直到上一个wget完成执行
- 当wget完成执行后,停止播放" dixie"
- 触发最终音频文件(.wav),称为"掌声"
- 停止所有音频
基本上,wget是重要的,播放的音频文件只是在我的相机拍照时创建音乐。当wget完成,掌声结束时,我想杀死所有的音频,但是对于" dixie"的subprocess.Popen命令。继续比赛(大约40秒)。我怎么能在最后杀死这个过程?
到目前为止,这是我的代码:
import os
import time
import subprocess
subprocess.call(["aplay countdown.wav"], shell=True)
subprocess.Popen(["aplay dixie.wav"], shell=True)
subprocess.call(["wget 'http://10.5.5.9/camera/SH?t=12345678&p=%01' -O-"], shell=True)
time.sleep(5)
subprocess.call(["aplay applause.wav"], shell=True)
subprocess.Popen.kill(["aplay dixie.wav"], shell=True)
我想杀死" dixie"一次"掌声"已经玩完了。
我的代码产生错误:
"unbound method kill() must be called with Popen instance as first
argument (got list instance instead)"
有任何建议吗?
答案 0 :(得分:0)
我建议这样做:
proc = subprocess.Popen(["aplay dixie.wav"], shell=True)
# do something
proc.terminate()