Exemplo n.º 1
0
 /// <summary>
 /// If a song is being played and its current time is higher than 2 seconds,
 /// then it will rewind to the beginning. If there's no song being played, then
 /// the previous song played will be played.
 /// </summary>
 /// <param name="sender">Rewind button</param>
 /// <param name="e">Button event</param>
 private void RewindButton_Click(object sender, RoutedEventArgs e)
 {
     if (reader != null && !isPlayerWaveOutAvailable)
     {
         if (reader.GetType() == typeof(WaveFileReader))
         {
             var waveFileReader = (WaveFileReader)reader;
             if (waveFileReader.CurrentTime.TotalSeconds >= 3)
             {
                 waveFileReader.CurrentTime = TimeSpan.FromMilliseconds(0);
                 SetPlayerData(reader);
             }
             else
             {
                 PreviousSong();
             }
         }
         else if (reader.GetType() == typeof(Mp3FileReader))
         {
             var mp3FileReader = (Mp3FileReader)reader;
             if (mp3FileReader.CurrentTime.TotalSeconds >= 3)
             {
                 mp3FileReader.CurrentTime = TimeSpan.FromMilliseconds(0);
                 SetPlayerData(reader);
             }
             else
             {
                 PreviousSong();
             }
         }
     }
 }
Exemplo n.º 2
0
 /// <summary>
 /// Updates the player data with the reader received.
 /// </summary>
 /// <param name="reader">Reader that stores the song data</param>
 private void SetPlayerData(IWaveProvider reader)
 {
     Application.Current.Dispatcher.Invoke(delegate {
         if (reader.GetType() == typeof(WaveFileReader))
         {
             var waveFileReader            = (WaveFileReader)reader;
             songCurrentTimeTextBlock.Text = waveFileReader.CurrentTime.ToString("mm\\:ss");
             songSlider.Value = waveFileReader.CurrentTime.Ticks * songSlider.Maximum / waveFileReader.TotalTime.Ticks;
         }
         else if (reader.GetType() == typeof(Mp3FileReader))
         {
             var mp3FileReader             = (Mp3FileReader)reader;
             songCurrentTimeTextBlock.Text = mp3FileReader.CurrentTime.ToString("mm\\:ss");
             songSlider.Value = mp3FileReader.CurrentTime.Ticks * songSlider.Maximum / mp3FileReader.TotalTime.Ticks;
         }
     });
 }