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

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

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

        // 時間を消費
        _remainingPresentationTime -= callbackDuration

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

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