/// <summary> /// Stops the media /// </summary> public virtual void Stop() { if (!MFMediaPlayerBase.Dispatcher.Shutdown || !MFMediaPlayerBase.Dispatcher.ShuttingDown) { MFMediaPlayerBase.Dispatcher.BeginInvoke((Action)(() => MFMediaPlayerBase.Stop())); } SetIsPlaying(false); }
/// <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> /// Closes the media /// </summary> public virtual void Close() { SetBackBuffer(IntPtr.Zero); InvalidateVideoImage(); if (!MFMediaPlayerBase.Dispatcher.Shutdown || !MFMediaPlayerBase.Dispatcher.ShuttingDown) { MFMediaPlayerBase.Dispatcher.BeginInvoke((Action)(delegate { MFMediaPlayerBase.Close(); MFMediaPlayerBase.Dispose(); })); } SetIsPlaying(false); }
/// <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); }