用于 .wav 文件编码的 C/C++ 库
Posted
技术标签:
【中文标题】用于 .wav 文件编码的 C/C++ 库【英文标题】:C/C++ library for .wav file encoding 【发布时间】:2009-11-30 13:22:11 【问题描述】:我需要一个 MS VC6 库,它将浮点数组形式的采样数据编码为音频文件格式,最好是 wav 还有一个库可以将样本编码为pcm格式并直接通过声卡播放而不需要先保存wav文件?
【问题讨论】:
重复:***.com/questions/1451606/… 【参考方案1】:看起来 libsndfile (www.mega-nerd.com/libsndfile/) 和 SndLib (ccrma.stanford.edu/software/snd/sndlib/) 可以满足您的需求。
【讨论】:
【参考方案2】:如前所述,WAV 文件格式非常简单。要播放样本,请使用 waveOut 函数;他们被记录在案。
要将浮点数转换为有符号的 16 位 PCM 样本,只需将样本转换为 16 位范围。例如,假设 -1.0 到 +1.0 范围内的样本乘以 32767.0 并转换为整数:
int16_t sample = static_cast<int16_t>(32767.0 * float_sample);
一旦你有了这些,只需使用 waveOut* 函数来播放样本。
【讨论】:
以上是关于用于 .wav 文件编码的 C/C++ 库的主要内容,如果未能解决你的问题,请参考以下文章
使用 javascript 播放以 base64 编码的 .wav 声音文件