code: def _set_player(self):
          
          players = []
          for name, p in self._mpris_players.items():
              # we set the priority here as we need to establish the player name
              # which might not be immediately available.
              if "_priority" not in p:
                  if self.player_priority:
                      try:
                          priority = self.player_priority.index(p["name"])
                      except ValueError:
                          try:
                              priority = self.player_priority.index("*")
                          except ValueError:
                              priority = None
                  else:
                      priority = 0
                  if priority is not None:
                      p["_priority"] = priority
              if p.get("_priority") is not None:
                  players.append((p["_state_priority"], p["_priority"], p["index"], name))
          if players:
              top_player = self._mpris_players.get(sorted(players)[0][3])
          else:
              top_player = {}
  
          self._player = top_player.get("_dbus_player")
          self._player_details = top_player
  
          self.py3.update()
docs: Sort the current players into priority order and set self._player
          Players are ordered by working state then prefernce supplied by user
          and finally by instance if a player has more than one running.