/// <summary>
 /// Plays the media
 /// </summary>
 public virtual void Play()
 {
     MFMediaPlayerBase.EnsureThread(DefaultApartmentState);
     MFMediaPlayerBase.Dispatcher.BeginInvoke((Action)(delegate
     {
         MFMediaPlayerBase.Play();
         Dispatcher.BeginInvoke(((Action)(() => SetIsPlaying(true))));
     }));
 }
 /// <summary>
 /// Pauses the media
 /// </summary>
 public virtual void Pause()
 {
     MFMediaPlayerBase.EnsureThread(DefaultApartmentState);
     MFMediaPlayerBase.Dispatcher.BeginInvoke((Action)(() => MFMediaPlayerBase.Pause()));
     SetIsPlaying(false);
 }
 protected void EnsurePlayerThread()
 {
     MFMediaPlayerBase.EnsureThread(DefaultApartmentState);
 }