naudio / NAudio

Audio and MIDI library for .NET
MIT License
5.45k stars 1.09k forks source link

Using TCP #477

Open MartinHolmes82 opened 5 years ago

MartinHolmes82 commented 5 years ago

Hi, I have looked at the demo network chat application but i am struggling to get it to work in the way we need. I was hoping to stream audio via a virtual channel for RDP but i'm not even sure where to start with that idea. So, instead when RDP is launched it calls a DLL creating a virtual channel that passes the application running on RDP the client machine (thin client) IP address. The RDP application will then connect to a socket via TCP on the client machine, which the client machine will then stream the audio from a microphone to the application on RDP. Hope that makes sense. Basically the only IP known is that of the end that will send the audio not the receiving end. But i think this can be achieved somehow by referencing tcpclient once the initial connection is made??? Is this correct?

markheath commented 5 years ago

The network chat demo app is extremely simplistic - it just sends audio to another IP address and receives incoming connections and plays audio it receives. RDP isn't involved at all in the process.

tusharsankhala commented 5 years ago

Hi Mark,

I am also checking network chat demo so till now what i was able to use it to connect locally to speak and hear my own voice. I tried connecting to other PC on the network but it failed. Any idea why ?

Question 2: I have implement VOIP using (NAudio + RabbitMQ), voice is clear but the problem is with echo. It starts with slight echo but as call progresses and more no of users connect that problems becomes more prominent.

This is my first time with Audio programming , so looking for help that what could be the reason and which part of the NAudio code should i start looking into to solve this.

Thanks in advance

markheath commented 5 years ago

Echo is a really hard problem to solve in network chat. Applications like Skype have advanced echo suppression algorithms, but NAudio doesn't have any I'm afraid. If you can get your users to use headsets, that's the simplest way to get echo free chat.

As for your networking issues, the NAudio chat demo was set up for loopback audio as it was simpler to demo and test that way, so probably needs the socket code modifying to work correctly across a network. You should be able to find a regular C# sockets tutorial on how to set that up.