public override async void Execute(object parameter) { var items = (ObservableCollection <IStorageItem>)parameter; var files = new List <StorageFile>(); foreach (var item in items) { var file = item as StorageFile; if (file != null && VLCFileExtensions.Supported.Contains(file.FileType.ToLower())) { files.Add((StorageFile)item); } } var playlist = new ObservableCollection <IVLCMedia>(); foreach (var file in files) { if (VLCFileExtensions.AudioExtensions.Contains(file.FileType.ToLower())) { var trackItem = await MusicLibraryManagement.GetTrackItemFromFile(file); playlist.Add(trackItem); } else if (VLCFileExtensions.VideoExtensions.Contains(file.FileType.ToLower())) { var videoVm = new VideoItem(); await videoVm.Initialize(file); playlist.Add(videoVm); } } await PlaylistHelper.AddTrackCollectionToPlaylistAndPlay(playlist, true, 0); }
/// <summary> /// Navigates to the Video Player screen with the requested file a parameter. /// </summary> /// <param name="file">The file to be played.</param> /// <param name="token">Token is for files that are NOT in the sandbox, such as files taken from the filepicker from a sd card but not in the Video/Music folder.</param> public async Task PlayVideoFile(StorageFile file, string token = null) { Locator.NavigationService.Go(VLCPage.VideoPlayerPage); VideoItem videoVm = new VideoItem(); await videoVm.Initialize(file); if (token != null) { videoVm.Token = token; } Locator.VideoVm.CurrentVideo = videoVm; await PlaylistHelper.Play(videoVm); }