Example #1
0
    def __init__(self, rewind_callback, position_callback, error_callback,
                 playing_callback):
        try:
            from app.tools import vlc
            from app.tools.vlc import EventType
        except OSError as e:
            log("{}: Load library error: {}".format(__class__.__name__, e))
            raise ImportError
        else:
            self._is_playing = False
            args = "--quiet {}".format("" if sys.platform ==
                                       "darwin" else "--no-xlib")
            self._player = vlc.Instance(args).media_player_new()
            ev_mgr = self._player.event_manager()

            if rewind_callback:
                # TODO look other EventType options
                ev_mgr.event_attach(
                    EventType.MediaPlayerBuffering,
                    lambda et, p: rewind_callback(p.get_media().get_duration()
                                                  ), self._player)
            if position_callback:
                ev_mgr.event_attach(
                    EventType.MediaPlayerTimeChanged,
                    lambda et, p: position_callback(p.get_time()),
                    self._player)

            if error_callback:
                ev_mgr.event_attach(EventType.MediaPlayerEncounteredError,
                                    lambda et, p: error_callback(),
                                    self._player)
            if playing_callback:
                ev_mgr.event_attach(EventType.MediaPlayerPlaying,
                                    lambda et, p: playing_callback(),
                                    self._player)
Example #2
0
 def __init__(self, settings):
     try:
         from app.tools import vlc
         from app.tools.vlc import EventType
     except OSError as e:
         log("{}: Load library error: {}".format(__class__.__name__, e))
         raise ImportError
     else:
         self._settings = settings
         self._is_record = False
         args = "--quiet {}".format("" if sys.platform ==
                                    "darwin" else "--no-xlib")
         self._recorder = vlc.Instance(args).media_player_new()
Example #3
0
    def __init__(self, mode, widget, buf_cb, position_cb, error_cb,
                 playing_cb):
        try:
            from app.tools import vlc
            from app.tools.vlc import EventType

            args = "--quiet {}".format("" if sys.platform ==
                                       "darwin" else "--no-xlib")
            self._player = vlc.Instance(args).media_player_new()
            vlc.libvlc_video_set_key_input(self._player, False)
            vlc.libvlc_video_set_mouse_input(self._player, False)
        except (OSError, AttributeError) as e:
            log("{}: Load library error: {}".format(__class__.__name__, e))
            raise ImportError("No VLC is found. Check that it is installed!")
        else:
            self._mode = mode
            self._is_playing = False

            ev_mgr = self._player.event_manager()

            if buf_cb:
                # TODO look other EventType options
                ev_mgr.event_attach(
                    EventType.MediaPlayerBuffering,
                    lambda et, p: buf_cb(p.get_media().get_duration()),
                    self._player)
            if position_cb:
                ev_mgr.event_attach(EventType.MediaPlayerTimeChanged,
                                    lambda et, p: position_cb(p.get_time()),
                                    self._player)

            if error_cb:
                ev_mgr.event_attach(EventType.MediaPlayerEncounteredError,
                                    lambda et, p: error_cb(), self._player)
            if playing_cb:
                ev_mgr.event_attach(EventType.MediaPlayerPlaying,
                                    lambda et, p: playing_cb(), self._player)

            self.init_video_widget(widget)
Example #4
0
 def get_vlc_instance():
     if Player._VLC_INSTANCE:
         return Player._VLC_INSTANCE
     _VLC_INSTANCE = vlc.Instance("--quiet --no-xlib").media_player_new()
     return _VLC_INSTANCE