'Process a service event coming from the speaker.'

def process_sonos_event(self, event):

    next_track_image_url = None
    if (event.service == self._player.avTransport):
        self._last_avtransport_event = event
        self._media_radio_show = None
        if self._current_track_is_radio_stream:
            current_track_metadata = event.variables.get('current_track_meta_data')
            if current_track_metadata:
                self._media_radio_show = current_track_metadata.radio_show.split(',')[0]
        next_track_uri = event.variables.get('next_track_uri')
        if next_track_uri:
            next_track_image_url = self._format_media_image_url(None, next_track_uri)
        next_track_metadata = event.variables.get('next_track_meta_data')
        if next_track_metadata:
            next_track = '{title}    -    {creator}'.format(title=next_track_metadata.title, creator=next_track_metadata.creator)
            if (next_track != self._media_next_title):
                self._media_next_title = next_track
        else:
            self._media_next_title = None
    elif (event.service == self._player.renderingControl):
        if ('volume' in event.variables):
            self._player_volume = int(event.variables['volume'].get('Master'))
        if ('mute' in event.variables):
            self._player_volume_muted = (event.variables['mute'].get('Master') == '1')
    self.schedule_update_ha_state(True)
    if next_track_image_url:
        self.preload_media_image_url(next_track_image_url)
