private void BtnPlay_Click(object sender, EventArgs e) { sheet.Focus(); if (_file.IsPlaying) { _file.Pause(); BtnPlay.Text = "Play"; TmrUpdate.Stop(); } else { _file.CurrentTime = sheet.Time; _file.Play(); BtnPlay.Text = "Pause"; TmrUpdate.Start(); } }
public void LoadFile(string path) { try { TmrUpdate.Stop(); if (_file != null) { _file.FourierProgress -= FourierProgress; _file.FourierComplete -= FourierComplete; _file.Dispose(); } BtnPlay.Show(); BtnSave.Show(); BtnSynth.Show(); BtnConvert.Show(); LbTip.Text = "Loading audio file, please wait..."; LbTip.Show(); _curTime = TimeSpan.Zero; sheet.ClearNotes(); sheet.StopSynthesize(); sheet.Redraw(); sheet.ScrollTop(); _file = new AudioFile(path); _file.LoadComplete += (object sender, EventArgs e) => { LbTip.Invoke(new Action(delegate { LbTip.Text = "Right click near the left end of a note to edit it.\nCtrl + N to add a note."; })); _file.Stopped += PlaybackStopped; _file.FourierProgress += FourierProgress; _file.FourierComplete += FourierComplete; _prevTime = TimeSpan.FromTicks(-1); _curTime = TimeSpan.Zero; sheet.Invoke(new Action(() => { sheet.Length = _file.TotalTime; sheet.Time = TimeSpan.Zero; sheet.Redraw(); sheet.ScrollTop(); TmrRedraw.Start(); })); _file.Analyze(); }; _maxLen = 0; this.Text = Path.GetFileName(path) + " - " + Application.ProductName; } catch (Exception ex) { MessageBox.Show(ex.ToString()); MessageBox.Show("Failed to load audio file! File may be corrupted or unsupported.", "Load failed", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } }
private void PlaybackStopped(object sender, NAudio.Wave.StoppedEventArgs e) { BtnPlay.Text = "Play"; TmrUpdate.Stop(); }