Portál AbcLinuxu, 13. května 2025 22:09

Dotaz: Python a MPlayer (pymplayer.py)

14.7.2008 15:38 Ficik | skóre: 2 | Litoměřice
Python a MPlayer (pymplayer.py)
Přečteno: 695×
Odpovědět | Admin
Příloha:
Dobrý den, Našel jsem krásný scriptík který používá můj oblíbený mplayer jako backend (ve slave modu) na přehrávání multimédií. Bohužel jsem schopný s ním pracovat jen jednostměrně, tzn. můžu v něm pouštet hudbu, přepínat skladby, měnit pozici ve skladbě, stopnout ho apod. Ale nejsem schopný získat data o přehrávání např. délku stopy, pozici, jméno souboru atd. Protože mi to pořád vrací "None".

Příkazy beru z http://www.mplayerhq.hu/DOCS/tech/slave.txt

Přidávám příklad který pustí hudbu chvíli by měl vypisovat pozici ve skladbě, což nedělá, a poté se vypne. Proč to tu pozici nevypisuje??

(V příloze je ten krásný scriptík co se stará o mplayer pymplayer.py)
import time, pymplayer

myplayer = pymplayer.MPlayer ()
play_song = "http://192.168.0.103:3689/databases/1/items/2.mp3?session-id=-1941587260"
myplayer.args=[play_song]
myplayer.start()
for i in range(0,5):
    print i, myplayer.command("get_time_pos", 2)
myplayer.stop()
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

14.7.2008 16:26 Ficik | skóre: 2 | Litoměřice
Rozbalit Rozbalit vše Re: Python a MPlayer (pymplayer.py)
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak problém asi nebude ve scriptu, jak tak koukám. Když pustím:
mplayer -slave foo.mp3
a píšu příkazy tak fungují, ale nedostanu výstup.
14.7.2008 16:34 chochi | skóre: 29 | Praha
Rozbalit Rozbalit vše Re: Python a MPlayer (pymplayer.py)
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud to dobre chapu (jelikoz Python neni muj obor, tak si nejsem jist :-) ) tak po skouknuti zdrojaku ty knohovny bych rekl, ze ti chyby neco co ten vstup "cte", tou funkci command se jenom vrati hodnota vnitrni promenne.
Asi nejjednodussi je stustit "cteni" v novem vlakne, takze asi (interaktinve pres konzoli, ale ve skriptu by to melo jit taky):
Python 2.4.3 (#1, Mar 14 2007, 18:51:08) 
[GCC 4.1.1 20070105 (Red Hat 4.1.1-52)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import time, pymplayer
>>> myplayer = pymplayer.MPlayer ()
>>> play_song = "title.wma"
>>> myplayer.args=[play_song]
>>> import  threading
>>> myplayer.start()
True

>>> thread = threading.Thread(target=myplayer.poll_output)
>>> thread.setDaemon(True)
>>> thread.start()

>>> myplayer.command("get_time_pos", 2)
'14.5'
>>> myplayer.command("get_time_pos", 2)
'18.0'
>>> myplayer.command("get_time_pos", 2)
'22.0'
>>> 
14.7.2008 17:11 Ficik | skóre: 2 | Litoměřice
Rozbalit Rozbalit vše Re: Python a MPlayer (pymplayer.py)
Moc moc děkuju.. ešte ale dodám že nesmíte mít povoleno v mplayer.configu really-quiet..

BTW nejde nějak nějak zakázat pro aktualní instanci? zapnout jde mplayer -really-quiet. Ale jak vypnout?
14.7.2008 17:23 chochi | skóre: 29 | Praha
Rozbalit Rozbalit vše Re: Python a MPlayer (pymplayer.py)
Pokud me informace jsou spravne tak parameter -really-quiet snizi "verbositu" o 10 bodu. Parameter -v zvisi verbositu o jeden bod. Takze neco, jako:
mplayer -slave -really-quiet -v -v -v -v -v -v -v -v -v -v -v -v title.wma
Se spravne odladenym pocet "-v" :-)
14.7.2008 17:31 chochi | skóre: 29 | Praha
Rozbalit Rozbalit vše Re: Python a MPlayer (pymplayer.py)
Oprava -really-quiet nastavuje verbositu na -10, takze pokud se nacte az posledni, tak nic nepomuze :-( Jinak
 mplayer -slave -really-quiet -quiet -v -v -v -v  title.wma
Se chova tak jak ma.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.