Fix playback of radio streams on Sonos S2 provider (#1610)
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Sun, 25 Aug 2024 18:10:28 +0000 (20:10 +0200)
committerGitHub <noreply@github.com>
Sun, 25 Aug 2024 18:10:28 +0000 (20:10 +0200)
Fix playback of radio streams on Sonos

music_assistant/server/providers/sonos/__init__.py

index 77b3a670debec201f5d8c8f2e39b7672b93bc50d..3739267e06422cfe1981217dc0e93655dbae31ff 100644 (file)
@@ -254,6 +254,15 @@ class SonosPlayer:
             self.mass_player.volume_level = self.client.player.volume_level or 100
         self.mass_player.volume_muted = self.client.player.volume_muted
 
+        # work out 'can sync with' for this player
+        self.mass_player.can_sync_with = tuple(
+            x
+            for x in self.prov.sonos_players
+            if x != self.player_id
+            and x in self.prov.sonos_players
+            and self.prov.sonos_players[x].client.household_id == self.client.household_id
+        )
+
         group_parent = None
         if self.client.player.is_coordinator:
             # player is group coordinator
@@ -264,14 +273,6 @@ class SonosPlayer:
                 else set()
             )
             self.mass_player.synced_to = None
-            # work out 'can sync with' for this player
-            self.mass_player.can_sync_with = tuple(
-                x
-                for x in self.prov.sonos_players
-                if x != self.player_id
-                and x in self.prov.sonos_players
-                and self.prov.sonos_players[x].client.household_id == self.client.household_id
-            )
             if airplay := self.get_linked_airplay_player(False):
                 self.mass_player.group_childs.update(
                     x for x in airplay.group_childs if x != self.airplay_player_id
@@ -814,12 +815,12 @@ class SonosPlayerProvider(PlayerProvider):
                     "artist": {
                         "name": item.media_item.artist_str,
                     }
-                    if item.media_item and item.media_item.artist_str
+                    if item.media_item and hasattr(item.media_item, "artist_str")
                     else None,
                     "album": {
                         "name": item.media_item.album.name,
                     }
-                    if item.media_item and item.media_item.album
+                    if item.media_item and hasattr(item.media_item, "album")
                     else None,
                     "quality": {
                         "bitDepth": item.streamdetails.audio_format.bit_depth,