protected override async void LoadState(object param, Dictionary <string, object> pageState) { base.LoadState(param, pageState); int id = (int)param; VideoDataItem item = VideoDataSource.GetItem(id); if (item != null) { OpenFile(item.File); } else if (pageState["fileToken"] != null) { StorageItemAccessList future = StorageApplicationPermissions.FutureAccessList; StorageFile file = await future.GetFileAsync(pageState["fileToken"] as string); future.Clear(); OpenFile(file); } if (pageState != null) { MediaPlayerState state = pageState["MediaState"] as MediaPlayerState; if (state != null) { MediaPlayer.RestorePlayerState(state); } } }
private void ItemView_ItemClick(object sender, ItemClickEventArgs e) { VideoDataItem item = e.ClickedItem as VideoDataItem; if (item.ID >= 0) { Frame.Navigate(typeof(PlayerPage), item.ID); } }
public async void AddThumbnail(StorageFile file, VideoDataItem item) { StorageItemThumbnail thumb = await file.GetThumbnailAsync(ThumbnailMode.VideosView); if (thumb != null) { BitmapImage img = new BitmapImage(); await img.SetSourceAsync(thumb); item.Image = img; } }
public int AddFile(StorageFile file, int groupID) { if (file != null && VideoExtensions.Contains(file.FileType)) { IEnumerable <VideoDataItem> matches = VideoDataSource.GetGroup(groupID).Items.Where(itm => itm.Path.Equals(file.Path)); if (matches.Count() > 0) { return(matches.First().ID); } VideoDataItem item = new VideoDataItem(VideoDataSource.NextID(), String.Empty, String.Empty, file); VideoDataSource.GetGroup(groupID).Items.Add(item); item.SetImage("ms-appx:///Assets/Thumbnail.png"); AddThumbnail(file, item); return(item.ID); } return(-1); }