예제 #1
0
    def __init__(self, vlc_instance):
        Talker.__init__(self)
        self.vlc_instance = vlc_instance
        self.media_player: MediaPlayer = MediaPlayer(self.vlc_instance)
        self.media_list_player: MediaListPlayer = MediaListPlayer(self.vlc_instance)
        self.media_list_player.set_media_player(self.media_player)
        self.media_list: MediaList = MediaList(self.vlc_instance)
        self.media_list_player.set_media_list(self.media_list)

        self.vlc_events = self.media_player.event_manager()
        self.vlc_events.event_attach(EventType.MediaPlayerEndReached, self.__on_end_event)
        self.vlc_events.event_attach(EventType.MediaPlayerStopped, self.__on_stop_event)
        self.vlc_events.event_attach(EventType.MediaPlayerPlaying,  self.__on_play_event)
예제 #2
0
 def start(self, name, play=True):
     if self.player != None:
         self.player.stop()
         self.player = None
     self.mediaplayer = MediaPlayer()
     assert (isinstance(name, list))
     playlist = MediaList()
     for entry in name:
         if entry is not None:
             playlist.add_media(entry)
     self.player = MediaListPlayer()
     self.player.set_media_list(playlist)
     self.player.set_media_player(self.mediaplayer)
     if play:
         self.play()
예제 #3
0
    def play_alarm_sound(self, filepath):
        # here we use a MediaListPlayer instance as it offers the repeat functionality
        self.player = MediaListPlayer()
        self.player.set_playback_mode(PlaybackMode.loop)
        media_player = Media(filepath)
        if not FileService.file_exists(filepath):
            print(
                'The alarm could not be played. Fallback to well known default alarm'
            )
            media_player = Media(DEFAULT_ALARM_FILEPATH)
        media_list = MediaList()
        media_list.add_media(media_player)
        self.player.set_media_list(media_list)

        result = self.player.play()
        if result == -1:
            # TODO test this
            print('Something went wrong')

        self.playing_alarm = True