12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- # 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()
|