我正在寫一個程序(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