seopardy/video.py

47 lines
1.1 KiB
Python

# Licensed under GPLv3
# Written by Sebastian Lohff (seba@someserver.de)
# http://seba-geek.de/projects/seopardy/
from __future__ import print_function
from PySide import phonon
class VideoPlayer(object):
def __init__(self, video, audio=False):
self._videoFile = video
self._audio = audio
self._widget = None
self._media_obj = phonon.Phonon.MediaObject()
self._media_src = phonon.Phonon.MediaSource(self._videoFile)
self._audio_out = None
# setup media object
self._media_obj.setCurrentSource(self._media_src)
# make media object loop
self._media_obj.finished.connect(lambda: self._media_obj.play())
if self._audio:
self._audio_out = phonon.Phonon.AudioOutput(phonon.Phonon.VideoCategory)
phonon.Phonon.createPath(self._media_obj, self._audio_out)
def get_widget(self):
if self._widget == None:
self._widget = phonon.Phonon.VideoWidget()
self._widget.setScaleMode(phonon.Phonon.VideoWidget.ScaleAndCrop)
phonon.Phonon.createPath(self._media_obj, self._widget)
return self._widget
def play(self):
self._media_obj.play()
def pause(self):
self._media_obj.pause()
def stop(self):
self._media_obj.stop()