我正在写一个程序(C++,vs2010,win7),它将音频记录到一个wav文件中。 当我尝试听到音频时,它有很多白色噪音。 我试图用我编写的另一个程序重新打开该文件。这个程序做的唯一的事情是:Wav文件噪声消除
Char buffer[8000*60*2] = {}
File *wav, *out
Wav = fopen ("raw", "r+")
Out = fopen("out", "a+")
fread(buffer, sizeof (char) *8000*60*2,1,wav)
fwrite(buffer, sizeof (char) *8000*60*2,1,out)
fclose (wav)
fclose (out)
我通过这个节目,我可以听到原wav文件的一小部分,没有任何噪音传递的原始数据后(我在大胆作为原始数据打开此)。 我的问题是,我没有改变数据中的任何东西,只是再次写入数据,就像我能清晰地听到的魔法一样。 我错过了什么? 我不做任何数据更改。 当我写入数据时,我把它写成一个简短的变量。 data is short fwrite(data,1024,1,wav)
你意识到你正在附加到该输出文件,而不是重写它? – 2013-03-24 10:02:54
是的,无论如何这是一个新文件。我可以将其更改为w +,但它会得到相同的结果 – David 2013-03-24 10:11:22
那么,如果您只是使用资源管理器来复制文件,那么您是否会得到相同的效果? – 2013-03-24 10:13:09