From fb85633930b0f146ee8f831f178e3aa4146d0c69 Mon Sep 17 00:00:00 2001 From: Aditya Mehra Date: Fri, 6 Aug 2021 20:49:17 +0930 Subject: [PATCH] add initial web player support --- plugin_playback_guiplayer/__init__.py | 43 +++++++++++++++++++++++---- 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/plugin_playback_guiplayer/__init__.py b/plugin_playback_guiplayer/__init__.py index b956f04..5fab991 100644 --- a/plugin_playback_guiplayer/__init__.py +++ b/plugin_playback_guiplayer/__init__.py @@ -32,11 +32,14 @@ def __init__(self, config, bus=None, name='guiplayer'): self.name = name self._is_playing = False self._paused = False + self.supports_mime_hints = True self.tracks = [] self.index = 0 self.track_lock = Lock() self.track_meta_from_player = None self.track_meta_from_cps = None + self.web_skillid = None + self.web_player = False self.bus.on('GuiPlayerServicePlay', self._play) self.bus.on( @@ -64,9 +67,26 @@ def _get_track(self, track_data): track = track_data[0] mime = track_data[1] mime = mime.split('/') + try: + if track_data[2]: + self.web_skillid = track_data[2] + else: + self.web_skillid = None + + if "web" in mime[0] and "url" in mime[1]: + self.web_player = True + else: + self.web_player = False + + except: + self.web_skillid = None + self.web_player = False + else: # Assume string track = track_data mime = self.find_mime(track) + self.web_player = False + return track, mime def _play(self, message): @@ -86,6 +106,10 @@ def _play(self, message): if 'video' in mime[0]: LOG.debug("Sending Video Type") self.bus.emit(Message("playback.display.video.type")) + elif self.web_player: + LOG.debug("Sending Web Video Type") + self.bus.emit(Message("playback.display.web.video.type", + {"url": track, "skill_id": self.web_skillid})) else: LOG.debug("Sending Audio Type") self.bus.emit(Message("playback.display.audio.type")) @@ -100,12 +124,19 @@ def _play(self, message): self.bus.emit(Message("playback.display.audio.type")) time.sleep(0.5) - self.bus.emit( - Message( - "gui.player.media.service.play", { - "track": track, "mime": mime, "repeat": repeat})) - LOG.debug('Player Emitted gui.player.media.service.play') - self.send_meta_to_player() + if self.web_player: + self.bus.emit(Message("gui.web.media.service.play", + {"url": track, "mime": mime, "repeat": repeat})) + LOG.debug('Player Emitted gui.web.media.service.play') + + else: + self.bus.emit( + Message( + "gui.player.media.service.play", { + "track": track, "mime": mime, "repeat": repeat})) + + LOG.debug('Player Emitted gui.player.media.service.play') + self.send_meta_to_player() def play(self, repeat=False): """ Play media playback. """