/// <inheritdoc /> public void OnMediaEnded(MediaEngine sender) { if (Parent == null || sender == null) { return; } GuiContext.Current.EnqueueInvoke(async() => { Parent.PostMediaEndedEvent(); // ReSharper disable once ConvertIfStatementToSwitchStatement if (Parent.UnloadedBehavior == System.Windows.Controls.MediaState.Close) { await sender.Close(); } else if (Parent.UnloadedBehavior == System.Windows.Controls.MediaState.Play) { await sender.Stop(); await sender.Play(); } else if (Parent.UnloadedBehavior == System.Windows.Controls.MediaState.Stop) { await sender.Stop(); } }); }
/// <inheritdoc /> public void OnMediaEnded(MediaEngine sender) { if (Parent == null || sender == null) { return; } Library.GuiContext.EnqueueInvoke(async() => { Parent.PostMediaEndedEvent(); var behavior = Parent.LoopingBehavior; if (behavior == MediaPlaybackState.Close) { await sender.Close(); } else if (behavior == MediaPlaybackState.Play) { await sender.Stop(); await sender.Play(); } else if (behavior == MediaPlaybackState.Stop) { await sender.Stop(); } }); }
/// <summary> /// Called when [media ended]. /// </summary> /// <param name="sender">The sender.</param> public void OnMediaEnded(MediaEngine sender) { if (Parent == null) { return; } GuiContext.Current.EnqueueInvoke(() => { Parent?.PostMediaEndedEvent(); switch (Parent?.UnloadedBehavior ?? System.Windows.Controls.MediaState.Manual) { case System.Windows.Controls.MediaState.Close: { sender?.Close(); break; } case System.Windows.Controls.MediaState.Play: { sender?.Stop().ContinueWith((t) => sender?.Play()); break; } case System.Windows.Controls.MediaState.Stop: { sender?.Stop(); break; } default: { break; } } }); }