private bool AddMusic(string musicName, MusicFile musicFile, bool forceReplace) { var musicNameLower = musicName.ToLowerInvariant(); if (MusicFiles.ContainsKey(musicNameLower)) { if (forceReplace && MusicFiles[musicNameLower].IsStandard) { MusicFiles.Remove(musicNameLower); } else { return(true); } } MusicFiles.Add(musicNameLower, new MusicClip(musicFile)); // TODO: Loading every music increases uned memory size duh //if (!musicFile.ForceLoad()) //{ // Logger.Log(Logger.LogTypes.Warning, $"MusicTrack.cs: File at \"{musicFile.LocalPath}\" is not a valid music file!"); // return false; //} return(true); }
private void MusicFileServiceOnMusicFileLoaded(object sender, MusicFileLoadedEventArgs eventArgs) { Device.BeginInvokeOnMainThread(() => { MusicFiles.Add(eventArgs.MusicFile); }); }
public void ScanFileLocations(BackgroundWorker worker, DoWorkEventArgs e) { if (worker.CancellationPending) { e.Cancel = true; } else { try { int highestPercentageReached = 0; foreach (var file in FileLocations) { int percentComplete = (int)((float)Array.IndexOf(FileLocations, file) / (float)Array.LastIndexOf(FileLocations, file) * 100); if (percentComplete > highestPercentageReached) { highestPercentageReached = percentComplete; worker.ReportProgress(percentComplete); } foreach (var ext in MusicExt) { string[] filePaths = Directory.GetFiles(file, ext, SearchOption.AllDirectories); foreach (var files in filePaths) { MusicFiles.Add(new Music(files)); } } foreach (var ext in VideoExt) { string[] filePaths = Directory.GetFiles(file, ext, SearchOption.AllDirectories); foreach (var files in filePaths) { VideoFiles.Add(new Video(files)); } } foreach (var ext in OtherExt) { string[] filePaths = Directory.GetFiles(file, ext, SearchOption.AllDirectories); foreach (var files in filePaths) { MediaFiles.Add(new MediaFiles(files)); } } } } catch (Exception exc) { throw new ArgumentException(exc.ToString()); } } }
public async void ImportFromMidiAsync() { var filePicker = new FileOpenPicker { ViewMode = PickerViewMode.List }; filePicker.FileTypeFilter.Add(".mid"); filePicker.FileTypeFilter.Add(".midi"); filePicker.FileTypeFilter.Add(".smf"); filePicker.CommitButtonText = "Import"; StorageFile file = await filePicker.PickSingleFileAsync(); if (file == null) { return; } if (file.ContentType != "audio/mid" && file.ContentType != "audio/midi") { await new MessageDialog("Please select a valid standard midi file.", "Selected file is not a midi file!").ShowAsync(); return; } IStorageItem rootDir = await ApplicationData.Current.RoamingFolder.TryGetItemAsync("Music"); if (rootDir == null) { await new MessageDialog("Please restart this app!", "Music Folder is not found!").ShowAsync(); return; } if ((await ImportAsync(file)) is StorageFile f) { MusicFiles.Add(f); } }