2016-07-07 8 views
1

epiphanyブラウザでURLを取得して起動するpython cgi/htmlがあります。 しかし、メディア/ビデオの終了後、ブラウザを終了する必要があります。 他の投稿では、vlc-mediaや他のプレーヤーでこれを行う方法があるようです。しかし、私はブラウザでそれを発見していない。python - ブラウザでメディアを起動して終了する

msg = form.getvalue("msg", "(no msg)") 
....... 
## in-progress of msg = "sudo -u vnc " + msg + " " 
....... 
from subprocess import * 
print Popen(msg, shell=True, stdin=PIPE, stdout=PIPE).communicate()[0] 

がどのように実行されますコマンド(URL)がストリーミング(ユーチューブ、CNNなど)が終了した後にシャットダウンするように実装します:コマンド周り

基本的な枠組みは次のようになりますか?

ありがとうございました。

+0

あなたは –

+0

はそう長さ(分、秒)ごとにフェッチ何かを書くプロセスを強制終了、ビデオの長さを知っている必要がありますか? – SndLt

+0

これは本当にサブプロセスの仕事のようには見えませんが、ブラウザはファイルが完成したことをPythonに伝えることができないので、ソングやビデオなどがいつ完了したかを知るためのプロセスがありません。 vlcのようなものでは、出力を監視することができ、メモリからはメディアが終了したときに終了すると思います。ブラウザでメディアを再生するのは何ですか? –

答えて

-1

これを行う最も簡単な方法は、pkillを使用することです。あなたが実行ファイルがepiphany-browser変更以外の第二の部分命名されている場合は

import os 
os.system("pkill epiphany-browser") 

:あなたは、オペレーティングシステムのUnixの家族の中でブラウザをepiphanyのインスタンスを殺すために探しているとして、あなたのようなものを使用したいです一致するコマンドはpkillです。

また、この名前を持つすべてのプロセスが終了することに注意してください。あなたが本当に賢いになりたい場合は、あなたがそれを起動した後、実際のプロセスの数をグラフ化しようとすることができます

import os 
os.system("pkill -n epiphany-browser") 

import os 
# launch stuff... 
epiphanyPID=os.system("pgrep -n epiphany-browser")[2] 
# do other stuff... 
os.system("kill -9 " + epiphanyPID) 

また、あなたがすべき唯一のあなたのような何かを行うことができ、最新のを殺すためにおそらくPopenで開くのではなく、webbrowserオブジェクトを使用してください。 closeがありませんが、私はドキュメントから理解していますが、セッションを開くためには望ましい解決策です。 EpiphanyGaleonオブジェクトを介してサポートされています:

20.1. webbrowser — Convenient Web-browser controller

+0

ありがとうございますが、私はまだあなたが推奨する "pkill"を呼び出す必要があるかどうか把握する必要がありますか? (ビデオが停止したときのように?)。 – SndLt

+0

FYIの 'pkill'は、プロセスを名前でkillする単なるLinuxシェルユーティリティです。ビデオ時間を得ることができれば、 'pkill'を' cron'ジョブとして(類似のシステムコール経由で)スケジューリングするか、 'sleep'を使ってコマンドを遅らせることができます。しかし、ユーザーがいつもビデオを一時停止できるので、タイミングを正しく取ることは難しいでしょう。あなたのビデオホスティングサービスからの直接的な信号がなければ、あなたができることは教育的な推測をすることです。 –

+1

ありがとう、ありがとう。私は、ユーザーにビデオの長さを設定させるか、デフォルトにします。 – SndLt

関連する問題