public PlayableItem Create(Video video)
        {
            PlayableItem playable = null;

            if (PlayableExternal.CanPlay(video.Path))
                playable = new PlayableExternal(video.Path);
            else if (PlayableVideoFile.CanPlay(video))
                playable = new PlayableVideoFile(video);
            else if (PlayableIso.CanPlay(video))
                playable = new PlayableIso(video);
            else if (PlayableMultiFileVideo.CanPlay(video))
                playable = new PlayableMultiFileVideo(video);
            else if (PlayableDvd.CanPlay(video))
                playable = new PlayableDvd(video);

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

            return playable;
        }
        public PlayableItem Create(Media media)
        {
            PlayableItem playable = null;

            foreach (CanPlay canPlay in PlayableItems.Keys)
                if (canPlay(media))
                {
                    Type type = PlayableItems[canPlay];
                    playable = (PlayableItem) Activator.CreateInstance(type, media);
                    break;
                }

            if (playable == null)
                playable = new PlayableVideoFile(media);

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

            return playable;
        }