Hello, I'm trying to play various videos with kaa.popcorn one after each other. I want also to start the next video when the user hits the spacebar. With the mplayer backend it works but the window flickers between videos. I've seen that the same behaviour is present in Freevo2 so I think it's mplayer's fault.
I've tried then with the xine backend but I get the following traceback
randomly. Attached is the program I coded so far.
To run just do
video2.py ~/videos/*.avi
and press spacebar to start watching the next video or get the traceback
2008-07-19 20:16:56,272 [ERROR] async(323): Unhandled InProgress
exception:
Traceback (most recent call last):
File "../base/build/lib.linux-i686-2.5/kaa/notifier/coroutine.py",
line 206, in _step
File "../base/build/lib.linux-i686-2.5/kaa/notifier/coroutine.py",
line 79, in _process
File "/usr/lib/python2.5/site-packages/kaa/popcorn/generic.py", line
316, in open
yield self._open(player)
AsyncException: Exception raised asynchronously; traceback follows:
File "../base/build/lib.linux-i686-2.5/kaa/notifier/coroutine.py",
line 206, in _step
File "../base/build/lib.linux-i686-2.5/kaa/notifier/coroutine.py",
line 80, in _process
File "/usr/lib/python2.5/site-packages/kaa/popcorn/generic.py", line
287, in _open
raise PlayerError("Forced player %s does not work", player)
PlayerError: ('Forced player %s does not work', 'xine')
#!/usr/bin/python
import sys
import logging
import kaa
import kaa.display
import kaa.popcorn
import kaa.input.stdin
def print_msg(msg):
print '>', msg
class VideoPlayer:
def __init__(self):
self.BACKEND = 'xine'
self.window = None
self.player = None
self.fnames = sys.argv[1:]
def next(self, id):
fname = self.fnames.pop(0)
print 'play %s with %s' % (fname, id)
self.player.open(fname, player=id)
self.player.play()
return True
def handle_key(self, key, player):
if key in ("enter"):
self.player.pause_toggle()
if key in ("space"):
self.next(self.BACKEND)
elif key == "q":
self.player.stop()
sys.exit(0)
def run(self):
# logging.getLogger('popcorn').setLevel(logging.INFO)
# logging.getLogger('popcorn.child').setLevel(logging.DEBUG)
self.window = kaa.display.X11Window(size = (800, 450), title = "Kaa Display Test")
self.player = kaa.popcorn.Player(self.window)
self.player.signals["start"].connect(self.window.show)
self.player.signals["end"].connect(print_msg, 'playback end')
self.player.signals["failed"].connect(print_msg, 'playback failed')
kaa.signals["stdin_key_press_event"].connect(self.handle_key, self.player)
if self.player.get_window():
self.player.get_window().signals["key_press_event"].connect(self.handle_key, self.player)
self.player.set_property('scale', kaa.popcorn.SCALE_KEEP)
if self.fnames:
kaa.OneShotTimer(self.next, self.BACKEND).start(0)
kaa.main.run()
video = VideoPlayer()
video.run()
signature.asc
Description: Digital signature
------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________ Freevo-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/freevo-devel
