问题描述
这个特殊的问题是,当尝试将回送音频从一台PC发送到另一台PC时,音频缓冲并停顿了不到一秒钟。会出现微小的结巴。
使用NAudio's ReadFullyStream中的示例发送的音频没有任何障碍,只有在处理时才会暂停一秒钟或两秒钟。
服务器:
private void Capture_DataAvailable(object sender,WaveInEventArgs e)
{
stream.Write(e.Buffer,e.BytesRecorded);
}
和客户:
wave = new WaveOut()
{
DesiredLatency = 500
};
wave.Init(buff); //BufferedWaveProvider
wave.Play();
while ((read = stream.Read(buffer,buffer.Length)) > 0)
{
buff.AddSamples(buffer,read);
}
我正在使用的代码经过了简化,并且使用了Tcp,因为我在知道Udp是首选之前就将它们放在一起了。
当前结果是音频可以播放,但是每半秒左右会卡顿。
解决方法
使用UdpClient
的网络解决了微小的卡顿现象,尽管它不能完全解决卡顿现象。这可以通过将音频作为编码的Mp3发送并在客户端进行解码来实现。就目前而言,它正在实时发送未压缩的数据,并且存在很小的差距。