2016-07-07 4 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

솔직히 말해서 이것은 서브 프로세스에서 일하는 것 같지 않습니다. 브라우저는 파일이 완료되었다는 것을 파이썬에게 알릴 수 없으므로 노래/비디오 등 ..이 언제 완료되었는지를 아는 하위 프로세스를 거칠 방법이 없습니다. vlc와 같은 것을 사용하면 출력을 모니터링 할 수 있고 메모리에서 미디어가 끝나면 종료됩니다. 브라우저에서 미디어를 재생하는 것은 무엇입니까? –

답변

-1

가장 간단한 방법은 pkill을 사용하는 것입니다. 당신이 epiphany의 인스턴스를 죽이는 방법을 찾고으로, 운영 시스템의 유닉스 계열의 브라우저, 당신은 같은 것을 사용하십시오 :

실행하면 epiphany-browser 변화의 두 번째 부분이 아닌 다른 이름 경우
import os 
os.system("pkill epiphany-browser") 

일치시킬 명령어는 pkill입니다.

또한이 이름을 가진 모든 프로세스가 종료됩니다.

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

을 또한 당신이해야 : 당신이 정말 영리하고 싶다면

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

하면, 당신은 당신이 그것을 실행 후 실제 공정 수를 그래프로 시도 할 수 있습니다 : 단지 당신이 뭔가를 할 수있는 최신 죽일 Popen으로 여는 것이 아니라 webbrowser 개체를 사용하는 것이 좋습니다. 문서에서 이해하는 한 close이 부족합니다. 그러나 세션을 여는 것이 바람직한 해결책입니다. EpiphanyGaleon 객체를 통해 지원됩니다

20.1. webbrowser — Convenient Web-browser controller

+0

고맙습니다.하지만 "pkill"을 권장해야 할 때를 알아야합니다. (비디오가 멈출 때와 같이?). – SndLt

+0

FYI,'pkill'은 이름으로 프로세스를 죽일 수있는 리눅스 쉘 유틸리티 일뿐입니다. 비디오 시간을 얻을 수 있다면'pkill'을 (유사한 시스템 호출을 통해)'cron' 작업으로 스케쥴하거나'sleep'을 사용하여 명령을 지연시킬 수 있습니다. 사용자가 항상 동영상을 일시 중지 할 수 있기 때문에 타이밍을 제대로 잡기가 어려울 것입니다. 비디오 호스팅 서비스의 직접적인 신호가 없으면 교육받은 추측을 할 수 있습니다. –

+1

감사합니다.사용자에게 비디오의 길이를 지정하게하거나 기본값을 설정하게 할 것입니다. – SndLt

관련 문제