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