读书人

wav文件格式。请问

发布时间: 2012-02-25 10:01:48 作者: rapoo

wav文件格式。请教
memcpy(wfh.chRIFF, "RIFF ", 4);
memcpy(wfh.chWAVE, "WAVE ", 4);
memcpy(wfh.chFMT, "fmt ", 4);
memcpy(wfh.chDATA, "data ", 4);
wfh.dwFMTLen = 0x10;// sizeof(WAVEFORMAT) + sizeof(WORD)
wfh.pwf.wf.wFormatTag = 1;// WAVE_FORMAT_PCM
wfh.pwf.wf.nChannels = 1;// mono
wfh.pwf.wf.nSamplesPerSec = nSamplesPerSec;
wfh.pwf.wf.nAvgBytesPerSec = nBitsPerSample * nSamplesPerSec / 8;
wfh.pwf.wf.nBlockAlign = (WORD)(nBitsPerSample / 8);
wfh.pwf.wBitsPerSample = (WORD)nBitsPerSample;
wfh.dwDATALen = dwTotalLen;
wfh.dwRIFFLen = dwTotalLen + 36;

fseek(RecAudioFile, 0L, SEEK_SET);
if (fwrite(&wfh, 1, sizeof(WAVEFILEHEADER), RecAudioFile) != sizeof(WAVEFILEHEADER))
err = ERR_WRITEFILE;

我现在是按照上面的格式进行写入的。
现在就有一个问题。
我们公司产品合成的语音文件,如果合成的是8bit的,这种方式加进去以后是对的。如果是16bit的话,播放的时候就出错了。但是用cool edit播放,使用16bit motorola pcm这种格式的话,错误的也能播放出来。
是不是上面的那些格式设置有问题。

[解决办法]
o 编译的时候是不是要设置结构体的对齐方式?

读书人网 >C++

热点推荐