在c#中向System.Media.SoundPlayer发送字节数组

时间:2015-01-12 09:29:17

标签: c# byte wav soundplayer

我希望将字符串字节发送到扬声器,如下所示:

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

3 个答案:

答案 0 :(得分:1)

WAV流的第一个字节包含有关长度等的信息。 你必须发送这个" WAV-Header"以及前几个字节。

请参阅http://de.wikipedia.org/wiki/RIFF_WAVE

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

答案 1 :(得分:0)

NAudio是播放该功能的最佳应用。使用提供的示例应用程序。它可能有帮助。

答案 2 :(得分:0)

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

我不建议你自己构建一个WAV文件,这可能需要付出太多努力。 请注意,此库(可能还有其他一些 Bass - http://www.un4seen.com也被广泛使用)也具有用于保存和读取WAV文件的内置功能。<​​/ p>