Пример #1
0
 //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");
     }
 }
Пример #2
0
        //Воспроизведение выбранной композиции
        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");
            }
        }