1

Incorrect slider value in player (YTPlayerView) with YouTube-Player-iOS-Helper.

Slider can't get to the end.

Video is over, but my custom slider stop and don't get end its value.

screenshot

Where I'm wrong?

I'll put some cut of code and functions (if need more, please say):

class PlayerViewController: UIViewController, YTPlayerViewDelegate {

var durationOfVideo: Double?

lazy var rewindSlider: UISlider = {
    let slider = UISlider()
    slider.minimumTrackTintColor = .white
    slider.maximumTrackTintColor = #colorLiteral(red: 0.8039215803, green: 0.8039215803, blue: 0.8039215803, alpha: 0.7)
    slider.setThumbImage(UIImage(named: "Thumb_On_ProgressLine"), for: .normal)
    slider.translatesAutoresizingMaskIntoConstraints = false
    
    slider.addTarget(self, action: #selector(handleSliderChange), for: .valueChanged)
    
    return slider
}()

@objc func handleSliderChange() {
    print(rewindSlider.value)
}

// MARK: viewDidLoad

override func viewDidLoad() {
    super.viewDidLoad()
    
    webView.delegate = self
    webView.load(withVideoId: "kbMqWXnpXcA",
                 playerVars: ["playsinline": 1])
}

// MARK: Player control

func playerViewDidBecomeReady(_ playerView: YTPlayerView) {
    playerView.duration { (time, error) in
        print("duration: \(time)")
        self.durationOfVideo = time
    }
}

func playerView(_ playerView: YTPlayerView, didPlayTime playTime: Float) {
    
    guard durationOfVideo != nil else { return }
    self.rewindSlider.value = Float((Double(playTime) / durationOfVideo!))

}

0 Answers0