音声を wav ファイルに録音し、同じ音声をスピーカー ( c++
、vs2010
、win7
) にストリーミングしています。スピーカーでそれを聞くと、オーディオはクリアに聞こえますが、wav ファイルに書き込むと、奇妙なカチカチ音/電気ノイズがオーディオに追加されます。Audacity を使用してファイルを開こうとすると、はっきりとわかります。 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)。