Implement video killing feature

This commit is contained in:
Martin Müller 2017-07-14 14:56:44 +02:00
parent ed62963858
commit 3e15a967f8
3 changed files with 19 additions and 2 deletions

View File

@ -11,6 +11,8 @@ app = Flask(__name__)
app.jinja_env.trim_blocks = True
app.jinja_env.lstrip_blocks = True
processlist = []
@app.route("/")
@app.route("/play/<sound>")
@app.route("/say/", methods=["POST"])
@ -39,7 +41,17 @@ def index(sound=None, text=None, video=None):
if video is not None:
url = subprocess.check_output(["youtube-dl", "-g", "-f", "mp4", video]).decode()
subprocess.Popen(["omxplayer", url.split("\n")[1]])
subprocess.Popen(["omxplayer", "-b", url.split("\n")[0]])
audioproc = subprocess.Popen(["omxplayer", url.split("\n")[1]])
videoproc = subprocess.Popen(["omxplayer", "-b", url.split("\n")[0]])
processlist.append(audioproc)
processlist.append(videoproc)
killvideo = request.args.get("killvideo")
if killvideo is not None and killvideo in ["1", "true", "yes"]:
for process in processlist:
process.terminate()
processlist.remove(process)
return render_template("index.html", sounds=sounds)

View File

@ -20,6 +20,7 @@ h1 {
}
form {
padding: 5px;
text-align: center;
}

View File

@ -25,6 +25,10 @@
<input type="text" name="video" />
<input type="submit" value="Play" />
</form>
<form action="/" method="GET">
<input type="hidden" name="killvideo" value="yes" />
<input type="submit" name="submit" value="Terminate videos" />
</form>
</section>
<section id="voice">
<form action="/say/" method="POST">