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); }
public void Audio_AudioAvailable(object sender, AudioAvailableEventArgs e) { foreach (float b in e.Buffer) { samples.Enqueue(b); } }
protected abstract void Audio_AudioAvailable(object sender, AudioAvailableEventArgs e);
protected override void Audio_AudioAvailable(object sender, AudioAvailableEventArgs e) { }