示例#1
0
        /// <summary>
        /// Called when [media ended].
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <returns>A <see cref="Task"/> representing the asynchronous operation.</returns>
        public Task OnMediaEnded(MediaEngine sender)
        {
            if (Parent == null)
            {
                return(Task.CompletedTask);
            }

            return(GuiContext.Current.EnqueueInvoke(async() =>
            {
                await Parent.RaiseMediaEndedEvent();
                switch (Parent.UnloadedBehavior)
                {
                case System.Windows.Controls.MediaState.Close:
                    {
                        await sender.Close();
                        break;
                    }

                case System.Windows.Controls.MediaState.Play:
                    {
                        await sender.Stop().ContinueWith(async(t) => await sender.Play());
                        break;
                    }

                case System.Windows.Controls.MediaState.Stop:
                    {
                        await sender.Stop();
                        break;
                    }

                default:
                    {
                        break;
                    }
                }
            }));
        }
 /// <summary>
 /// Called when [media ended].
 /// </summary>
 /// <param name="sender">The sender.</param>
 public void OnMediaEnded(object sender)
 {
     Control?.RaiseMediaEndedEvent();
 }