protected async override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); var file = (StorageFile)e.Parameter; var parent = await file.GetParentAsync(); var list = await parent.GetFilesAsync(); var videolist = VideoHelper.getVideosFromFolder(list, false); foreach (var item in videolist) { FolderVideoModel model = new FolderVideoModel() { title = item.DisplayName, duration = await VideoHelper.GetVideoDuration(item), imageSource = await ThumbnailHelper.getThumbnailForVideo(item), subtitle = null, videoPath = item.Path, mediaPlaybackItem = new MediaPlaybackItem(MediaSource.CreateFromStorageFile(item)) }; videoFiles.Add(model); playbackList.Items.Add(model.mediaPlaybackItem); } }
public async static Task <ObservableCollection <FolderVideoModel> > populateGrid(IReadOnlyList <IStorageItem> files) { var watch = Stopwatch.StartNew(); list.Clear(); if (files.Count > 0) { var model = new FolderVideoModel(); foreach (var item in files) { if (item is StorageFolder) { var folder = (StorageFolder)item; Debug.WriteLine($"{folder.DisplayName} is a folder"); var count = await VideoHelper.GetVideoCountFromFolder(folder); var bitmap = new BitmapImage(new Uri("ms-appx:///Assets/folder-icon.png")); model = new FolderVideoModel(folder.DisplayName, count.ToString(), folder.Path, bitmap, null, null); } else if (item is StorageFile) { var file = (StorageFile)item; if (VideoHelper.isVideo(file)) { var duration = await VideoHelper.GetVideoDuration(file); var bitmap = await ThumbnailHelper.getThumbnailForVideo(file); model = new FolderVideoModel(file.DisplayName, duration, file.Path, bitmap, null, null); } } list.Add(model); //list.Add(Task.Run(() => model)); } /* var results = await Task.WhenAll(list); * * foreach (var item in results) * { * videoFiles.Add(item); * }*/ } return(list); watch.Stop(); var time = watch.ElapsedMilliseconds; Debug.WriteLine($" Time ----------- {time}"); }