 */
     func handleVideoEnd(videoPlayer:AVPlayer) {
         if self.delegate != nil && self.delegate!.shouldRepeat(self) {
-            videoPlayer.seek(to: CMTime(seconds:Double(self.videoStart), preferredTimescale: 600))
+            videoPlayer.seek(to: CMTime(seconds:Double(videoStart), preferredTimescale: 600), toleranceBefore: kCMTimeZero, toleranceAfter: kCMTimeZero)
             videoPlayer.play()
         } else {
             self.fNeedRewind = true

                    self.delegate.didStartPlaying(self)
                    MyLog("SWElem videoPlayer.state = \(videoPlayer.status.rawValue)", level: 1)
                    if self.fNeedRewind {
                        videoPlayer.seek(to: CMTime(seconds:Double(self.videoStart), preferredTimescale: 600))
                    }
                    videoPlayer.play()
                    self.fNeedRewind = false

                if (videoStart > 0) {
                    MyLog("SWElem seekTo \(videoStart)", level:0)
                }
                videoPlayer.seek(to: CMTime(seconds:Double(videoStart), preferredTimescale: 600), toleranceBefore: kCMTimeZero, toleranceAfter: kCMTimeZero)

                notificationManager.addObserver(forName: .AVPlayerItemDidPlayToEndTime, object: playerItem, queue: OperationQueue.main) {
                    [unowned self] (_:Notification!) -> Void in
