       @stop()
     else
       @seek(@index + 1)
-      @timeout = setTimeout(@tick, @interval)
+      duration = @getTimeToNextFrame()
+      @timeout = setTimeout(@tick, duration)
 
   seek: (index) ->
     previousIndex = @index


  getSnapshot: ->
    @recording.getSnapshotAtFrameIndex(@index)

    @playing = false
    @index = -1
    @length = @recording.getFrameCount()

  play: ->
    return if @playing
