//test button private void testButton_Click(object sender, RoutedEventArgs e) { try { new Task(() => { WaveFileReader ws = new WaveFileReader(Properties.Resources.audiocheck_net_sin_1000Hz__3dBFS_3s); //WaveOutEvent output = new WaveOutEvent(); //output.Init(ws); //output.Play(); outputDevice = new WaveOutEvent(); equalizer = new SampleAggregator(ws.ToSampleProvider(), bands); //create new equalizer with mainReader as stream provider and bands as equalizer data //equalizer.NotificationCount = MainWindow.mainReader.WaveFormat.SampleRate / 100; equalizer.NotificationCount = ws.WaveFormat.SampleRate / 100; equalizer.PerformFFT = true; equalizer.FftCalculated += (s, a) => visualizerWindow.FftCalculatedFired(s, a); outputDevice.Init(equalizer); //Initialize equalizer in audio output outputDevice.Play(); while (true) { ws.CurrentTime = TimeSpan.FromSeconds(ws.TotalTime.TotalSeconds / 2); Thread.Sleep(100); } }).Start(); } catch (Exception ex) { Debug.WriteLine("\n" + ex + "\n"); } }
//Воспроизведение выбранной композиции private void playerControlPlay_MouseUp(object sender, MouseButtonEventArgs e) { try { if (SearchAudio.playing) { if (outputDevice == null) { outputDevice = new WaveOutEvent(); } outputDevice.Stop(); SearchAudio.playing = false; } if (outputDevice != null && outputDevice.PlaybackState == PlaybackState.Playing) { return; //do nothing if song is already playing } if (outputDevice != null && outputDevice.PlaybackState == PlaybackState.Paused) //if song is paused - unpause and start timer again { outputDevice.Play(); Timer(); return; } if (IsMoreThanOneTrackSelected()) { return; //if user tries to play multiple tracks, do nothing } outputDevice = new WaveOutEvent(); //set audio output string trackToPlay = ((Track)tracksDataGrid.SelectedItem).filePath; //mainReader = new AudioFileReader(((Track)tracksDataGrid.SelectedItem).filePath); //set reader as stream provider mainReader = new AudioFileReader(trackToPlay); //visualizerWindow.CreateAggregator(); equalizer = new SampleAggregator(mainReader, bands); //create new equalizer with mainReader as stream provider and bands as equalizer data equalizer.NotificationCount = MainWindow.mainReader.WaveFormat.SampleRate / 100; equalizer.PerformFFT = true; equalizer.FftCalculated += (s, a) => visualizerWindow.FftCalculatedFired(s, a); outputDevice.Init(equalizer); //Initialize equalizer in audio output outputDevice.Play(); Timer(); } catch (Exception ex) { Debug.WriteLine("\n" + ex + "\n"); } }