22 def __init__(self, config, bus=None, name='vlc'):
23 super(VlcService, self).
__init__(config, bus)
26 self.
player = self.instance.media_player_new()
27 self.list_player.set_media_player(self.
player)
29 self.list_player.set_media_list(self.
track_list)
31 self.vlc_events.event_attach(vlc.EventType.MediaPlayerPlaying,
44 return [
'file',
'http',
'https']
48 self.
track_list = self.instance.media_list_new()
50 self.list_player.set_media_list(self.
track_list)
53 LOG.debug(
"Track list is " + str(tracks))
55 self.track_list.add_media(self.instance.media_new(t))
57 def play(self, repeat=False):
58 """ Play playlist using vlc. """ 59 LOG.debug(
'VLCService Play')
61 self.list_player.set_playback_mode(vlc.PlaybackMode.loop)
63 self.list_player.set_playback_mode(vlc.PlaybackMode.default)
65 self.list_player.play()
68 """ Stop vlc playback. """ 69 LOG.info(
'VLCService Stop')
70 if self.player.is_playing():
74 self.list_player.stop()
80 """ Pause vlc playback. """ 81 self.player.set_pause(1)
84 """ Resume paused playback. """ 85 self.player.set_pause(0)
88 """ Skip to next track in playlist. """ 89 self.list_player.next()
92 """ Skip to previous track in playlist. """ 93 self.list_player.previous()
96 """ Lower volume (will be called when mycroft is listening 101 if (self.
normal_volume is None and self.player.is_playing()
and 102 self.config.get(
'duck',
False)):
107 """ Restore volume to previous level. """ 114 """ Extract info of current track. """ 117 t = self.player.get_media()
118 ret[
'album'] = t.get_meta(meta.Album)
119 ret[
'artists'] = [t.get_meta(meta.Artist)]
120 ret[
'name'] = t.get_meta(meta.Title)
128 seconds (int): number of seconds to seek, if negative rewind 130 seconds = seconds * 1000
131 new_time = self.player.get_time() + seconds
132 duration = self.player.get_length()
133 if new_time > duration:
135 self.player.set_time(new_time)
142 seconds (int): number of seconds to seek, if negative rewind 144 seconds = seconds * 1000
145 new_time = self.player.get_time() - seconds
148 self.player.set_time(new_time)
152 backends = base_config.get(
'backends', [])
153 services = [(b, backends[b])
for b
in backends
154 if backends[b][
'type'] ==
'vlc' and 155 backends[b].
get(
'active',
True)]
156 instances = [
VlcService(s[1], bus, s[0])
for s
in services]
def seek_backward(self, seconds=1)
def load_service(base_config, bus)
def track_start(self, data, other)
def __init__(self, config, bus=None, name='vlc')
def play(self, repeat=False)
def add_list(self, tracks)
def seek_forward(self, seconds=1)
def get(phrase, lang=None, context=None)