我正在使用 C# 和 DirectSound 录制音频并通过本地网络将其发送到另一台接收数据并将其保存到波形文件中的计算机。
我使用类似的代码进行录制,并使用类似的代码保存波形文件(使用 NAudio)。
将所有接收到的字节保存到波形文件中。但是,我想从多台计算机接收音频并将其合并为一个波形文件。
我尝试录制两个单独的波形文件,每个客户端一个,然后将它们合并在一起。但是,我的幼稚方法没有提供任何同步方式。生成的波形文件在长度上至少相差 5 秒,并且无法适当地合并。
所以,这是我的问题:
1)如何获取从网络接收的音频字节并将它们保存到波形文件中,以便生成的文件在正确的时间播放音频?
例如,我录制了 100 秒的音频并通过网络发送。但是,实际上只记录了 95 秒的音频字节。丢失的 5 秒是由于我发送数据包时发生的小延迟累积造成的。
那么,如何在 100 秒内将这 95 秒的音频同步到正确的时间播放?
2)如何混合从多个客户端接收到的音频字节以获得同步播放所有客户端音频的单个波形文件?
如果我需要澄清我的问题,请告诉我。我感谢任何帮助!