Fix cast/dlna player stops playing after 1 or 2 tracks of a playlist (#1658)
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Wed, 11 Sep 2024 21:43:18 +0000 (23:43 +0200)
committerGitHub <noreply@github.com>
Wed, 11 Sep 2024 21:43:18 +0000 (23:43 +0200)
music_assistant/server/controllers/player_queues.py

index c47425fe082426ece1b6fbf9c6f849b61cb3a3f7..591e4a74de586542e5dc9f7f5b14f6824882ff47 100644 (file)
@@ -1145,7 +1145,12 @@ class PlayerQueuesController(CoreController):
         self.signal_update(queue_id)
         # enqueue the next track as soon as the player reports
         # it has started buffering the given queue item
-        self.mass.create_task(self._enqueue_next(queue, item_id))
+        task_id = f"enqueue_next_{queue_id}"
+        self.mass.call_later(0.2, self._enqueue_next, queue, item_id, task_id=task_id)
+        # we repeat this task once more after 2 seconds to ensure the player
+        # received the command as it may be missed at the first attempt
+        # due to a race condition
+        self.mass.call_later(2, self._enqueue_next, queue, item_id, task_id=task_id)
 
     # Main queue manipulation methods