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); }