/// <summary>
 /// Creates a new instance of the PlaylistCommands class.
 /// </summary>
 public PlaylistCommands()
 {
     previousPlaylistItemCommand = new DelegateCommand(() =>
     {
         PlaylistPlugin.GoToPreviousPlaylistItem();
     });
     nextPlaylistItemCommand = new DelegateCommand(() =>
     {
         PlaylistPlugin.GoToNextPlaylistItem();
     });
 }
        public static MediaPlayerState GetPlayerState(this MediaPlayer player)
        {
            MediaPlayerState result = new MediaPlayerState();

            result.Position = player.Position;
            result.IsPaused = player.CurrentState == MediaElementState.Paused;
            PlaylistPlugin playlistPlugin = player.Plugins.OfType <PlaylistPlugin>().FirstOrDefault();

            if (playlistPlugin != null)
            {
                result.PlaylistItemIndex = playlistPlugin.CurrentPlaylistItemIndex;
            }
            return(result);
        }
        public static void RestorePlayerState(this MediaPlayer player, MediaPlayerState state)
        {
            if (state == null)
            {
                throw new ArgumentNullException("state");
            }
            player.StartupPosition = state.Position;
            player.AutoPlay        = !state.IsPaused;
            player.AutoLoad        = true;
            PlaylistPlugin playlistPlugin = player.Plugins.OfType <PlaylistPlugin>().FirstOrDefault();

            if (playlistPlugin != null)
            {
                playlistPlugin.StartupPlaylistItemIndex = state.PlaylistItemIndex;
            }
        }