My c# code as follows it gives no errors but no sound outputs also.I used putty and monitored data stream which comes from COM14 port is fine.this is my first time in NAudio so have no idea that what did I do wrong.
WaveInEvent waveSource;
WaveOut waveOut = new WaveOut();
WaveFormat format = new WaveFormat(8000, 16, 1);
public int audioCounter = 0;
public byte[] buffer;
private BufferedWaveProvider _bufferedWaveProvider = new BufferedWaveProvider(new WaveFormat(16000, 16, 1));
private void btn_scan_Click(object sender, EventArgs e)
{
string temppoteName = "COM14";
SerialPort tempSerialPort = new SerialPort(temppoteName, 57600, Parity.None, 8, StopBits.One);
tempSerialPort.Open();
tempSerialPort.DataReceived += new SerialDataReceivedEventHandler(comPort14_DataReceived);
}
private void comPort14_DataReceived(object sender,SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
string indata = sp.ReadExisting();
Console.WriteLine("Data Started Reciving :" + sp.PortName);
waveSource = new WaveInEvent();
waveSource.WaveFormat = new WaveFormat(8000, 16, 1);
waveOut.DesiredLatency = 100;
int x = sp.BytesToRead;
buffer = new byte[x];
sp.Read(buffer, 0, x);
_bufferedWaveProvider.AddSamples(buffer, 0, x);
if (audioCounter == 0)
{
waveOut.Init(_bufferedWaveProvider);
}
waveOut.Play();
++audioCounter;
}
There are some questions I have about your code
Init
and Play
once on waveOut, but you're calling Play
on every buffer of audio received.My recommended way of troubleshooting issues like this is to write the audio you receive to a WAV file with WaveFileWriter
. That way you can examine it in a regular wave editor and see if it contains the signal you expect.