Example #1
0
        protected override void Audio_AudioAvailable(object sender, AudioAvailableEventArgs e)
        {
            short[] buffer = new short[e.Buffer.Length];

            // Update sample rate
            if (currentrate != e.SampleRate)
            {
                currentrate = e.SampleRate;
                audiothread.Abort();
                audiothread          = new Thread(StreamingThread);
                audiothread.Priority = ThreadPriority.Highest;
                audiothread.Start();
            }

            // Convert given buffer data
            for (int i = 0; i < buffer.Length; i++)
            {
                buffer[i] = ConvertFloatTo16Bit(e.Buffer[i] * Amplitude);
            }

            // Flush the queue if there are more than 20 buffers pending..
            if (audioqueue.Count > 20)
            {
                audioqueue.Clear();
            }

            // Pass it to the audio queue
            audioqueue.Enqueue(buffer);
        }
Example #2
0
 public void Audio_AudioAvailable(object sender, AudioAvailableEventArgs e)
 {
     foreach (float b in e.Buffer)
     {
         samples.Enqueue(b);
     }
 }
Example #3
0
 protected abstract void Audio_AudioAvailable(object sender, AudioAvailableEventArgs e);
Example #4
0
 protected override void Audio_AudioAvailable(object sender, AudioAvailableEventArgs e)
 {
 }