簡體   English   中英

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

但我得到了這個例外: 我的問題圖片http://8pic.ir/images/g699b52xe5ap9s8yf0pz.jpg

WAV流的第一個字節包含有關長度等的信息。您還必須在前幾個字節中發送此“ WAV-Header”。

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

如您所見,完全有可能在標頭中組合這幾個字節,並在原始音頻數據之前發送它們,

NAudio是發揮該功能的最佳應用程序。 使用提供的示例應用程序可能會有所幫助。

您可以使用某些庫從麥克風讀取數據或將其播放到揚聲器。 我成功地使用了: NAudio- http : //naudio.codeplex.com/

我不建議您自己構建WAV文件,這樣做可能會花費很多精力。 請注意,該庫(還有可能廣泛使用的Bass - http://www.un4seen.com也可能被廣泛使用)還具有用於保存和讀取WAV文件的內置功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM