Esempio n. 1
0
 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);
                }
            }
        }