Помогите разобраться с Python скриптом

Автор studio2, 22 января 2016, 22:52:52

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

vic5710

Цитата: alsoijw от 27 января 2016, 17:59:48
Провёл эксперимент. Если плеер(totem) уже запущен, то при повторной команде он откроет второй файл. Для других плееров поведение может отличатся.
хм. может быть, счас компа с дебом нет под рукой, смотрел на старой слаке, там все самосборное. sorry

vic5710

#16
накидал скрипт с простым таймером.omxplayer у меня нет, тренировался с mplayer и клавиатурой

import os
import time
from threading import Thread
from subprocess import Popen

class timer(Thread):
    def __init__(self,interval):
        Thread.__init__(self)
        self.interval = interval
        self.pos1 = 0
        self.pos2 = 0
        self.flag1 = False
        self.flag2 = False
        self.done = False
    def run(self):
        while True:
            time.sleep(self.interval)
            if self.flag1:
                self.pos1 += 1
            if self.flag2:
                self.pos2 += 1
            if self.done:
                break
   
           
if __name__ == "__main__":
    t = timer(1)
    t.start()
    while True:
        s = raw_input()
        if s == 'q':
            os.system("killall mplayer")
            t.done = True
            break
        elif s == '1':
            os.system("killall mplayer")
            cmd =["/usr/local/bin/mplayer","-ss",str(t.pos1),"1.mp4"]
            Popen(cmd)
            t.flag1 = True
            t.flag2 = False
        elif s == '2':
            os.system("killall mplayer")
            cmd = ["/usr/local/bin/mplayer","-ss",str(t.pos2),"2.mp4"]
            Popen(cmd)
            t.flag2 = True
            t.flag1 = False

таки я знал что можно сделать просто!

from subprocess import Popen,PIPE

print "Begin"
print "q - exit"
print "> - next"
print "< - prev"
print "p - pause"

cmd = ["/usr/local/bin/mplayer","-quiet","-loop","0","1.mp4","2.mp4"]
p = Popen(cmd,stdin=PIPE,stdout=PIPE,stderr=PIPE)
while True:
    s = raw_input()
    if s == 'q':
        p.stdin.write("q")
        break
    elif s == ">":
        p.stdin.write(">")
    elif s == '<':
        p.stdin.write("<")
    elif s == 'p':
        p.stdin.write("p")
p.stdin.write("q")
print "End"