       percent = clamp targetX / @track.width()
 
       @sound.setPosition percent * @sound.duration
-      @playerTimeUpdated()
+      @soundPlaying()
 
     seekEnd: (e) =>
       return if not @seeking

      doc.on 'mousemove', @seekMove
      doc.on 'mouseup', @seekEnd

    setSources: ({@image, @audio}) =>
      @spectrogram.attr src: @image

      @el.removeClass 'loaded'

      @sound?.destruct()

      soundManager.onready =>
        @sound = soundManager.createSound
          id: @audio.replace /\W+/g, '_'
          url: @audio

          whileloading: @playerLoading
          onload: @playerLoaded
          onplay: @playerPlayed
          whileplaying: @playerTimeUpdated
          onpause: @playerPaused
          onfinish: @playerFinished

    playerLoading: () =>
      @el.addClass 'loading'

    playerLoaded: =>
      @el.removeClass 'loading'
      @el.addClass 'loaded'

    playerPlayed: =>
      @el.addClass 'playing'

    playerTimeUpdated: =>
      finishedPercent = "#{(@sound.position / @sound.duration) * 100}%"
      @seekLine.css left: finishedPercent
      @fill.css width: finishedPercent
      @thumb.css left: finishedPercent

    playerPaused: =>
      @el.removeClass 'playing'

    playerFinished: =>
      @playerPaused()
      delay 500, =>
        @sound.setPosition 0
        @playerTimeUpdated()

    play: =>
      @sound.play()

      @html @template
      @el.attr tabindex: 0

      @setImage @image if @image
      @setAudio @audio if @audio

    delegateEvents: =>
      super
