private async void DownloadMultipleBtn_Click(object sender, RoutedEventArgs e) { var dialog = MutipleDownloadDialog.Create(_master.EpisodeList, b => { var item = new MutipleDownloadDialogItem() { Name = b.Name, Oringin = b, ToDownload = false }; return(item); }, async(item, quality) => { var b = (BiliBangumi)item.Oringin; var dash = await BiliVideoHelper.GetVideoDashStreamAsync(b.Video, Settings.SESSDATA); await VideoDownloadManager.CreateDashDownloadAsync(b.Video, dash.TryGetTargetQuality(quality), dash.GetHighestAudioQuality()); }); if (await dialog.ShowAsync() == ContentDialogResult.Primary) { ShowTipWithMessage("批量下载任务已创建"); } }
private async void SingleDownloadBtn_Click(object sender, RoutedEventArgs e) { var btn = sender as DropDownButton; var video = (BiliVideo)btn.DataContext; if (btn.Flyout != null) { return; } btn.Content = new ProgressRing() { IsActive = true, Height = 20, Width = 20 }; BiliVideoDashInfo dashInfo; try { dashInfo = await BiliVideoHelper.GetVideoDashStreamAsync((BiliVideo)btn.DataContext, Settings.SESSDATA); } catch (Exception ex) { Debug.WriteLine(ex.Message); btn.Content = "错误"; return; } btn.Content = "下载"; var flyout = new Windows.UI.Xaml.Controls.MenuFlyout(); var items = flyout.Items; foreach (var info in dashInfo.Videos) { var item = new Windows.UI.Xaml.Controls.MenuFlyoutItem() { Text = $"{info.Quality.ToQualityString()}-{info.Codec}", DataContext = info }; item.Click += async(s, args) => { var task = VideoDownloadManager.CreateDashDownloadAsync (video, (DashVideoInfo)item.DataContext, dashInfo.Audios.OrderByDescending(a => a.Quality).First()); ShowTipWithMessage($"{video.Name}-{info.Quality.ToQualityString()}-{info.Codec}"); await task; }; items.Add(item); } btn.Flyout = flyout; flyout.ShowAt(btn); }
private async void DownloadMultipleBtn_Click(object sender, RoutedEventArgs e) { var dialog = MutipleDownloadDialog.Create(_master.Videos, v => { var item = new MutipleDownloadDialogItem { Name = v.Name, ToDownload = false, Oringin = v }; return(item); }, async(item, quality) => { var v = (BiliVideo)item.Oringin; var dash = await BiliVideoHelper.GetVideoDashStreamAsync(v, Settings.SESSDATA); await VideoDownloadManager.CreateDashDownloadAsync(v, dash.TryGetTargetQuality(quality), dash.GetHighestAudioQuality()); }); if (await dialog.ShowAsync() == Windows.UI.Xaml.Controls.ContentDialogResult.Primary) { ShowTipWithMessage("批量下载任务已创建"); } }