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