'Get the song position and duration.
It\'s hard to predict whether or not the music will start during init
so we have to detect state by checking the ticker.'

@util.Throttle(MIN_TIME_BETWEEN_UPDATES)
def _update_song_position(self):

    (cur_minutes, cur_seconds, total_minutes, total_seconds) = self._pianobar.match.groups()
    time_remaining = ((int(cur_minutes) * 60) + int(cur_seconds))
    self._media_duration = ((int(total_minutes) * 60) + int(total_seconds))
    if ((time_remaining != self._time_remaining) and (time_remaining != self._media_duration)):
        self._player_state = STATE_PLAYING
    elif (self._player_state == STATE_PLAYING):
        self._player_state = STATE_PAUSED
    self._time_remaining = time_remaining
