在 C# 中将字节数组发送到 System.Media.SoundPlayer

send array of bytes to System.Media.SoundPlayer in c#

我想像这样向扬声器发送字符串字节:

byte[] bt = {12,32,43,74,23,53,24,54,234,253,153};// example array
var ms = new MemoryStream(bt);
var sound = new System.Media.SoundPlayer();
sound.Stream = ms;
sound.Play();

但我得到这个例外: my problem pic http://8pic.ir/images/g699b52xe5ap9s8yf0pz.jpg

WAV 流的第一个字节包含有关长度等的信息。 您还必须在前几个字节中发送此 "WAV-Header"。

http://de.wikipedia.org/wiki/RIFF_WAVE

如您所见,完全有可能在 header 中组合这几个字节并在原始音频数据之前发送它们,

NAudio 是发挥该功能的最佳应用。使用示例应用 provided.It 可能会有帮助。

您可以使用一些库从麦克风读取数据或将其播放到扬声器。 我成功地与: NAudio - http://naudio.codeplex.com/

我不建议自己构建 WAV 文件,这可能会花费太多精力。 请注意,此库(可能还有一些其他库,Bass - http://www.un4seen.com 也被广泛使用)也具有用于保存和读取 WAV 文件的内置功能。