'Seeks to time position given in milliseconds.
:param time_position: time position in milliseconds
:type time_position: int
:rtype: :class:`True` if successful, else :class:`False`'

def seek(self, time_position):

    validation.check_integer(time_position)
    if (time_position < 0):
        logger.debug(u'Client    seeked    to    negative    position.    Seeking    to    zero.')
        time_position = 0
    if (not self.core.tracklist.tracks):
        return False
    if (self.get_state() == PlaybackState.STOPPED):
        self.play()
    tl_track = (self._current_tl_track or self._pending_tl_track)
    if (tl_track and (tl_track.track.length is None)):
        return False
    if (time_position < 0):
        time_position = 0
    elif (time_position > tl_track.track.length):
        self.next()
        return True
    self._pending_position = time_position
    if (self._current_tl_track and self._pending_tl_track):
        self._change(self._current_tl_track, self.get_state())
    else:
        return self._seek(time_position)
