Basically I am working with a VOIP like solution that will have multiple inputs and a single output (Combined) The input data is relayed from a server and will be combined at the client.
Initial tests used one buffered provider for everyone (One singular one) and that obviously filled up and got glitchy for more than one other person in the call. I thought about doing one buffered provider for everyone but have no idea how to properly execute this.
Check out this article by Mark Heath, the NAudio guru, about mixing audio:
http://mark-dot-net.blogspot.co.uk/2014/12/mixing-and-looping-with-naudio.html
It discusses the MixingWaveProvider32
class for mixing several IWaveProvider
audio sources into one IWaveProvider
output. If you're using ISampleProvider
inputs, the article also mentions the MixingSampleProvider
class.