wav文件中奇怪的滴答声

时间:2013-03-24 14:13:26

标签: c++ audio audio-streaming wav pcm

我正在将音频录制到wav文件中,并将相同的音频流式传输到扬声器(c++vs2010win7)。 当我在扬声器中听到它时,我可以听到音频清晰,但当我把它写入一个wav文件时,我得到一个奇怪的滴答声/电噪声添加到音频,我尝试使用大胆打开文件,我可以清楚地看到每0.05秒有一个峰值。 我不知道从哪里添加了噪音你能帮帮我吗?

我将写作添加到我的代码中的文件中:

writeWav(char *filename,short *data) 
{ 
     FILE *wav; 
     wav = fopen(filename,"ab+"); 
     for(int i=0;i<1024;i++) 
     { 
        writeLE(data[i],2,wav); 
     } 
     fclose(wav); 
} 

void writeLE(short data,int nBytes,FILE *wav) //write in little-endian
{ 
     unsigned buf; 
     while(nBytes > 0) 
     { 
         buf = word & 0xff; 
         fwrite(&buf,1,1,wav); 
         nBytes--; 
         word >>= 8; 
     } 
}

每次收到数据包时都会调用函数writeWav(大小= 1024)。

1 个答案:

答案 0 :(得分:1)

看起来你的for循环是错误的。

要处理1024项,应该是:

for (int i = 0; i < 1024; i++)