private void Seek(CMTime seekTime, double totalSeconds, double value, bool canPlay = true) { player.Seek(seekTime, finished => { if (finished) { if (isPlaying && canPlay) { player.Play(); } UpdateLabels(totalSeconds, value); } else { playerItem.CancelPendingSeeks(); slider.TimeLeftString = "00:00"; } }); }
private void Control_TouchUpInside(object sender, EventArgs e) { var duration = slider.FileDuration; if (duration.HasValue) { var totalSeconds = TimeSpan.FromMilliseconds(duration.Value).TotalSeconds; var value = ((UISlider)sender).Value * totalSeconds; var seekTime = new CMTime((long)value, 1); if (player != null) { //var obj = playerItem.SeekableTimeRanges; player.Seek(seekTime, finished => { if (finished) { if (isPlaying) { player.Play(); } UpdateLabels(totalSeconds, value); } else { playerItem.CancelPendingSeeks(); slider.TimeLeftString = "00:00"; } }); // player.Play(); } else { //set valueToSeek UpdateLabels(totalSeconds, value); } } }