                 self.pendingOffset = offset
                 return
             }
-            let timeSec = videoStart + offset * videoDuration
+            let timeSec = videoStart + offset * (videoDuration ?? 1.0)
             let time = CMTimeMakeWithSeconds(Float64(timeSec), 600)
             let tolerance = CMTimeMake(10, 600) // 1/60sec
             if player.status == AVPlayerStatus.readyToPlay {

                    }
                    videoPlayer.play()
                    self.fNeedRewind = false
                }
            }
        }

            if let urlVideo = urlLocalOrStream {
                let playerItem = AVPlayerItem(url: urlVideo)
                videoPlayer.replaceCurrentItem(with: playerItem)
                videoPlayer.seek(to: CMTime(seconds:Double(videoStart), preferredTimescale: 600))

                notificationManager.addObserver(forName: .AVPlayerItemDidPlayToEndTime, object: playerItem, queue: OperationQueue.main) {
                    [unowned self] (_:Notification!) -> Void in
                    MyLog("SWElem play to end!", level: 1)
                    self.handleVideoEnd(videoPlayer: videoPlayer)
                }
            }
            
