             if _producer.startReading(rate: rate, atPosition: position) {
                 _lastTimestamp = CACurrentMediaTime()
                 _remainingPresentationTime = 0.0
+                _previousTimestamp = 0.0
                 _displayLink.paused = false
                 _playbackRate = CFTimeInterval(rate)
             }

    */
    @objc func _displayLinkCallback(displayLink: CADisplayLink) {

        // 表示対象の時刻を計算（再生レートも加味）
        let callbackDuration =
        displayLink.duration * CFTimeInterval(displayLink.frameInterval)
        //let nextOutputHostTime = displayLink.timestamp + callbackDuration

        // 時間を消費
        _remainingPresentationTime -= callbackDuration

        // フレームの表示時間を、消費したぶんだけ補充する
        while _remainingPresentationTime < 0.0 {

            _displayLink.paused = true
            _lastTimestamp = CACurrentMediaTime()
            _remainingPresentationTime = 0.0
            _previousTimestamp = 0.0
            _playbackRate = CFTimeInterval(rate)
        } else {

