首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

wav文件格式。请问

2012-02-25 
wav文件格式。请教memcpy(wfh.chRIFF, RIFF ,4)memcpy(wfh.chWAVE, WAVE ,4)memcpy(wfh.chFMT,fmt,

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 编译的时候是不是要设置结构体的对齐方式?

热点排行