与这个问题非常相似,我有网络微控制器,它收集 PCM 音频(8 位,8 kHz)并通过 TCP 网络套接字将数据作为原始字节流式传输。我能够连接到设备,打开一个NetworkStream
,并从收集的数据中创建一个 RIFF / wave 文件。
我想更进一步,并启用测量的实时回放。到目前为止,我的方法MemoryStream
是使用适当的 RIFF 标头将传入数据缓冲到多个 's 中,并在每个块完成时用于System.Media.SoundPlayer
播放波形文件段。为了避免高延迟,每个段只有 0.5 秒长。
我对这种方法的主要问题是,片段之间通常会出现独特的爆裂声(因为每个块不一定是零中心或零端的)。
问题:
是否有更合适或更直接的方法在 C# 中播放实时流式传输 PCM 音频?
如果没有,我是否可以采取其他步骤来使多个播放运行更顺畅?