elif active_service == MusicService.SPOTIFY:
self.mass_player.active_source = SOURCE_SPOTIFY
elif active_service == MusicService.MUSIC_ASSISTANT:
- if object_id := container.get("id", {}).get("objectId"):
+ if self.client.player.is_coordinator:
+ self.mass_player.active_source = self.mass_player.player_id
+ elif object_id := container.get("id", {}).get("objectId"):
self.mass_player.active_source = object_id.split(":")[-1]
+ else:
+ self.mass_player.active_source = None
else:
# its playing some service we did not yet map
self.mass_player.active_source = active_service
self.mass.players.update(self.player_id)
self.reconnect(5)
- self._listen_task = asyncio.create_task(_listener())
+ self._listen_task = self.mass.create_task(_listener())
await init_ready.wait()
async def _disconnect(self) -> None:
if "positionMillis" not in item:
continue
mass_player.current_media = PlayerMedia(
- uri=item["mediaUrl"], queue_id=sonos_playback_id, queue_item_id=item["id"]
+ uri=item["mediaUrl"], queue_id=sonos_player_id, queue_item_id=item["id"]
)
mass_player.elapsed_time = item["positionMillis"] / 1000
mass_player.elapsed_time_last_updated = time.time()