From: Marcel van der Veldt Date: Mon, 10 Jun 2019 09:06:07 +0000 (+0200) Subject: fix start index X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=7e66bfc4c17d62af0d7707ea9023fca626e0a19d;p=music-assistant-server.git fix start index --- diff --git a/music_assistant/modules/http_streamer.py b/music_assistant/modules/http_streamer.py index 09e64066..1effcbf8 100755 --- a/music_assistant/modules/http_streamer.py +++ b/music_assistant/modules/http_streamer.py @@ -134,6 +134,7 @@ class HTTPStreamer(): use case is enable crossfade support for chromecast devices ''' player_id = http_request.query.get('player_id') + startindex = int(http_request.query.get('startindex', 0)) cancelled = threading.Event() resp = web.StreamResponse(status=200, reason='OK', @@ -145,7 +146,7 @@ class HTTPStreamer(): cancelled = threading.Event() run_async_background_task( self.mass.bg_executor, - self.__stream_queue, player_id, queue, cancelled) + self.__stream_queue, player_id, startindex, queue, cancelled) try: while True: chunk = await queue.get() @@ -160,7 +161,7 @@ class HTTPStreamer(): raise asyncio.CancelledError() return resp - async def __stream_queue(self, player_id, buffer, cancelled): + async def __stream_queue(self, player_id, startindex, buffer, cancelled): ''' start streaming all queue tracks ''' sample_rate = self.mass.config['player_settings'][player_id]['max_sample_rate'] fade_length = self.mass.config['player_settings'][player_id]["crossfade_duration"] @@ -179,7 +180,7 @@ class HTTPStreamer(): asyncio.create_task(fill_buffer()) player = await self.mass.player.player(player_id) - queue_index = player.cur_queue_index + queue_index = startindex last_fadeout_data = b'' self.mass.event_loop.create_task(self.mass.player.player_queue_stream_update(player_id, queue_index, True)) while True: diff --git a/music_assistant/modules/playerproviders/chromecast.py b/music_assistant/modules/playerproviders/chromecast.py index 9f168d97..adb887b2 100644 --- a/music_assistant/modules/playerproviders/chromecast.py +++ b/music_assistant/modules/playerproviders/chromecast.py @@ -87,14 +87,12 @@ class ChromecastProvider(PlayerProvider): elif cmd == 'next': enable_crossfade = self.mass.config['player_settings'][player_id]["crossfade_duration"] > 0 if enable_crossfade: - self._players[player_id].cur_queue_index+=1 - await self.__play_stream_queue(player_id, self._players[player_id].cur_queue_index) + await self.__play_stream_queue(player_id, self._players[player_id].cur_queue_index+1) else: self._chromecasts[player_id].media_controller.queue_next() elif cmd == 'previous': if enable_crossfade: - self._players[player_id].cur_queue_index-=1 - await self.__play_stream_queue(player_id, self._players[player_id].cur_queue_index) + await self.__play_stream_queue(player_id, self._players[player_id].cur_queue_index-1) else: self._chromecasts[player_id].media_controller.queue_prev() elif cmd == 'power' and cmd_args == 'off':