public async Task Stop()
        {
            if (CurrentItem == null)
            {
                return;
            }

            if (Player.Rate != 0.0)
            {
                Player.Pause();
            }

            CurrentItem.Seek(CMTime.FromSeconds(0d, 1));

            Status = MediaPlayerStatus.Stopped;
            await Task.FromResult(true);
        }
        public async Task Stop()
        {
            await Task.Run(() =>
            {
                if (CurrentItem == null)
                {
                    return;
                }

                if (this.PeriodicTimeObserverObject != null)
                {
                    if (Player.Rate != 1.0)
                    {
                        Player.Pause();
                    }
                }

                CurrentItem.Seek(CMTime.FromSeconds(0d, 1));

                Status = MediaPlayerStatus.Stopped;
            });
        }
 public async Task Seek(TimeSpan position)
 {
     await Task.Run(() => { CurrentItem?.Seek(CMTime.FromSeconds(position.TotalSeconds, 1)); });
 }