2009-11-30 81 views
1

我需要一個用於MS VC6的庫,它將浮點數組形式的採樣數據編碼爲音頻文件格式,最好是wav 還有一個庫,可以編碼採樣成pcm格式並直接通過聲卡播放而不保存wav文件?用於.wav文件編碼的C/C++庫

+0

重複:http://stackoverflow.com/questions/1451606/programaflow-make-and-play-a-sound-through-speakers-c – 2009-11-30 13:35:01

回答

2

如前所述,WAV文件格式非常簡單。要播放樣本,請使用waveOut函數;他們被記錄。

要將浮點轉換爲帶符號的16位PCM採樣,只需將採樣轉換爲16位範圍。例如,假設在範圍爲-1.0到+1.0樣本乘以32767.0並轉換爲整數:

int16_t sample = static_cast<int16_t>(32767.0 * float_sample); 

一旦你擁有了這些,只需要使用waveout的*功能發揮的樣本。

4

它看起來像libsndfile(www.mega-nerd.com/libsndfile/)和SndLib(ccrma.stanford.edu/software/snd/sndlib/)會做你想做的。

+0

添加超鏈接。 – 2011-07-29 19:19:54