Witam. Chcę zbudować czat głosowy w oparciu o NAudio. Napisałem program nagrywający dźwięk.

 using NAudio;
using NAudio.Wave;
using NAudio.CoreAudioApi;
using System;
using System.IO;
using System.Media;
using System.Threading;
 
namespace WavRecord
{
    class Program
    {
        IWaveIn wi; 
        WaveFileWriter wfw;
 
        static void Main(string[] args) 
        {
            new Program().wi_StartRecording();
 
        }         
 
        void stop()
        {
            wi.StopRecording();
        }
 
        void wi_StartRecording()
        {
 
            wi = new WaveIn(WaveCallbackInfo.FunctionCallback()); 
 
            wi.DataAvailable += new EventHandler<WaveInEventArgs>(wi_DataAvailable);
            wi.RecordingStopped += new EventHandler<StoppedEventArgs>(wi_RecordingStopped); 
            wi.WaveFormat = new WaveFormat(8000, 1);
 
            wfw = new WaveFileWriter(@"record.wav", wi.WaveFormat);
 
            wi.StartRecording();
            Console.Read();
            wfw.Dispose();
        }
 
        void wi_DataAvailable(object sender, WaveInEventArgs e) 
        {
            wfw.Write(e.Buffer, 0, e.BytesRecorded);
 
        }
 
        void wi_RecordingStopped(object sender, EventArgs e) 
        { 
            wi.Dispose(); 
            wfw.Close(); 
        }
 
    }
} 

Sądzę, że najlepszym miejscem na wysyłanie jest metoda wi_DataAvailabe, gdyż możemy odczytać cały bufor jako gotową tablicę bajtów do wysłania. Tylko jak je odtworzyć? Próbowałem SoundPlayer'em, próbowałem zapisać do pliku *.wav, ale bez skutku. Wiem, że jest coś takiego jak BufferedWaveProvider, ale bardzo wiem jak on działa i nie udało mi się nic zrobić. Wie ktoś jak rozwiązać mój problem (odtworzenie dźwięku z tablicy bajtów)?