public async void BrowsePlaylistsCommand() { string[] acceptableFiles = { "xspf", "asx", "wvx", "b4s", "m3u", "m3u8", "pls", "smil", "smi", "zpl" }; var dialog = new OpenFileDialogEx() { Filters = new[] { new FileDialogFilter() { Name = Resources.FileFilter_PlaylistFiles, Extensions = acceptableFiles.ToList() } }, WindowTitle = Resources.ImportPlaylistFiles, AcceptButtonLabel = Resources.ImportPlaylistFiles }; var files = await dialog.ShowAsync(GetMainWindow()); if (files.Length <= 0 && files is null) { return; } var reader = PlaylistIOFactory.GetInstance().GetPlaylistIO(files[0]); foreach (var s in reader.FilePaths) { if (!File.Exists(s)) { Window.Notifications.Add(new() { ContentText = string.Format(Properties.Resources.Notification_FileInPlaylistMissing, Path.GetFileName(s)), DisplayAsToast = true, IsImportant = true, Type = NotificationType.Failure }); continue; } } Window.Player.Queue.Add(reader.FilePaths.ToArray()); await Task.Run(() => Window.Library.Import(reader.FilePaths.ToArray())); await Window.Player.PlayAsync(); }
public async void BrowseTracksCommand() { var dialog = new OpenFileDialogEx() { Filters = new[] { new FileDialogFilter() { Name = Resources.FileFilter_AudioFiles, Extensions = acceptableFilePaths } }, AllowMultiple = true, WindowTitle = Resources.Import, AcceptButtonLabel = Resources.Import }; var files = await dialog.ShowAsync(GetMainWindow()); if (files.Length > 0 && files is not null) { await Task.Run(() => Window.Library.Import(files)); } }