예제 #1
0
 void Mixer_AudioRead(object sender, AudioReadEventArgs e)
 {
     if (_muted || _player == null)
     {
         double tosleep = (_pauseTill - DateTime.Now).TotalMilliseconds;
         if (tosleep > 0)
         {
             System.Threading.Thread.Sleep((int)tosleep);
         }
         _pauseTill = DateTime.Now.AddMilliseconds(1000 * e.buffer.Length / e.buffer.PCM.SampleRate);
         return;
     }
     if (_resampler == null)
     {
         _player.Write(e.buffer);
     }
     else
     {
         //Trace.WriteLine(string.Format("Flow: {0}", result.Length));
         _resampler.Flow(e.buffer, resampled);
         //Trace.WriteLine(string.Format("Play: {0}", resampled.Length));
         if (resampled.Length != 0)
         {
             _player.Write(resampled);
         }
     }
 }