public PlayableItem Create(Folder folder)
        {
            PlayableItem playable = null;

            var playableChildren = folder.RecursiveChildren.Select(i => i as Media).Where(v => v != null && v.IsPlaylistCapable() && v.ParentalAllowed).OrderBy(v => v.Path);
            playable = new PlayableMediaCollection<Media>(folder.Name, playableChildren, folder.HasVideoChildren);
            playable.PlayableItems = playableChildren.Select(i => i.Path);

            foreach (var controller in Kernel.Instance.PlaybackControllers)
            {
                if (controller.CanPlay(playable.PlayableItems))
                {
                    playable.PlaybackController = controller;
                    return playable;
                }
            }

            return playable;
        }
        public PlayableItem Create(Folder folder)
        {
            PlayableItem playable = null;

            var playableChildren = folder.RecursiveChildren.Select(i => i as Media).Where(v => v != null && v.IsPlaylistCapable() && v.ParentalAllowed).OrderBy(v => v.Path);

            playable = new PlayableMediaCollection <Media>(folder.Name, playableChildren, folder.HasVideoChildren);
            playable.PlayableItems = playableChildren.Select(i => i.Path);


            foreach (var controller in Kernel.Instance.PlaybackControllers)
            {
                if (controller.CanPlay(playable.PlayableItems))
                {
                    playable.PlaybackController = controller;
                    return(playable);
                }
            }

            return(playable);
        }
示例#3
0
        public void ShuffleSecure(Item item)
        {
            Folder folder = item.BaseItem as Folder;
            if (folder != null)
            {
                Random rnd = new Random();
                PlayableItem playable;

                var playableChildren = folder.RecursiveChildren.Select(i => i as Media).Where(v => v != null && v.IsPlaylistCapable() && v.ParentalAllowed).OrderBy(i => rnd.Next());
                //if (playableChildren.Count() > 0) //be sure we found something to play
                {
                    playable = new PlayableMediaCollection<Media>(item.Name, playableChildren, folder.HasVideoChildren);
                    playable.QueueItem = false;
                    playable.PlayableItems = playableChildren.Select(i => i.Path);
                    foreach (var controller in Kernel.Instance.PlaybackControllers)
                    {
                        if (controller.CanPlay(playable.PlayableItems))
                        {
                            playable.PlaybackController = controller;
                            break;
                        }
                    }
                    playable.Play(null, false);
                }

            }
        }
示例#4
0
        public void PlayUnwatchedSecure(Item item)
        {
            Folder folder = item.BaseItem as Folder;

            if (folder != null)
            {
                PlayableItem playable;

                var playableChildren = folder.RecursiveChildren.Select(i => i as Media).Where(v => v != null && v.ParentalAllowed && !v.PlaybackStatus.WasPlayed).OrderBy(v => v.Path);
                if (playableChildren.Count() > 0) //be sure we have something to play
                {
                    playable = new PlayableMediaCollection<Media>(item.Name, playableChildren);
                    playable.Play(null, false);
                }
            }
        }