Esempio n. 1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SoundTimeSource"/> class.
 /// </summary>
 /// <param name="fileName">Name of the file.</param>
 public SoundTimeSource(string fileName)
 {
     waveOutDevice     = new WaveOutEvent();
     audioFileReader   = new AudioFileReader(fileName);
     loopingWaveStream = new SoundLoopWaveProvider(audioFileReader)
     {
         EnableLooping = false
     };
     waveOutDevice.Init(loopingWaveStream);
     waveOutDevice.PlaybackStopped += (s, a) => playing = false;
     length = (float)audioFileReader.TotalTime.TotalSeconds;
 }
        /// <summary>
        /// Plays sound from a given file
        /// </summary>
        /// <param name="fileName">input sound file name (can be a compressed format, like mp3)</param>
        /// <param name="looped">should playback be looped forever</param>
        public void PlaySound(string fileName, bool looped = false)
        {
            var input = new AudioFileReader(fileName);

            if (looped)
            {
                var reader        = new SoundLoopWaveProvider(input);
                var sampleChannel = new SampleChannel(reader, false);
                AddMixerInput(sampleChannel);
            }
            else
            {
                AddMixerInput(new AutoDisposeSampleProvider(input, input));
            }
        }