【发布时间】:2013-03-24 14:13:26
【问题描述】:
我正在将音频录制到 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)。
【问题讨论】:
-
我从 Udp 线程中的接收器获取音频的接收数据包。我将相同的数据发送到扬声器和文件。我确定是我写的东西,数据很好。
标签: c++ audio audio-streaming wav pcm