我一直在使用環回捕捉模式捕捉音頻。捕獲的波形是一個32位波形。我努力將它轉換爲16位波形,因此像lame這樣的編碼器可以處理它(它表示不支持的數據格式:0x0003)。將32位波形轉換爲16位波形
我試過將波流中的位(不是我的強項)從32位移到16位,但結果仍然聽起來有失真。如果(sourceStream.WaveFormat.Encoding!= WaveFormatEncoding.IeeeFloat)拋出新的ApplicationException(「僅支持32位浮點支持」);否則返回false。
理想情況下,我想直接捕獲到16位,有沒有辦法設置捕獲位深度?如果沒有,有人可以幫助我轉換波流嗎?
捕獲波形的例子可以在這裏找到:http://dl.dropbox.com/u/454409/test.wav(10MB)
我也解決了一些方法來編碼這個與跛腳的MP3,我已經想盡參數排列我能想到的讓它接受wave文件。有趣的是Audacity(使用lame_enc編碼mp3)能夠從波形中創建一個mp3(但也許Audacity自動將它轉換爲16位,然後傳遞給它)。
這指出我在正確的方向,解決了我的問題。 – hreinn1000 2010-09-30 09:05:55