0

我想向扬声器发送字符串字节,如下所示:

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();

但我得到了这个例外: 我的问题图片 http://8pic.ir/images/g699b52xe5ap9s8yf0pz.jpg

4

3 回答 3

1

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

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

正如您将看到的,完全有可能在标头中组合这几个字节并在原始音频数据之前发送它们,

于 2015-01-12T09:50:51.867 回答
0

NAudio是发挥该功能的最佳应用。使用提供的示例应用程序。它可能会有所帮助。

于 2015-01-12T09:54:17.030 回答
0

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

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

于 2015-01-12T09:58:49.320 回答