2010-08-21 48 views
0

我使用n音訊產生脈衝寬度調製音頻信號,用於控制一對伺服的的。目前我使用它實現了IWaveProvider接口WaveProvider32類,馬克希思寫道(http://mark-dot-net.blogspot.com/2009/10/playback-of-sine-wave-in-naudio.html)。採樣速率爲44100是否可以設置NAudio Read的請求數?

的音頻信號基本上是一個塊N寬,其中信號中的所有值都高,而對於該塊的剩餘部分的值是低的第一部分。由於讀操作要求比塊的寬度更多的採樣,我只需重複該信號,直到填滿緩衝區。我的問題是,緩衝區的長度是不我的信號塊的寬度的倍數,所以最後的塊的一部分被切斷,螺釘與所述伺服並使其抽搐。我知道我可以做一些代碼花式跟蹤,並抵消下一個讀的開始,但我會更容易些,如果我能設置WaveProvider必須提供一次值的數量,這樣我可以讓它多(或者確切的寬度)的信號塊大小。

這可能嗎?

回答

0

看功能要求的數據量是由您選擇的IWaveOut實施,並在操作緩衝的等待時間和數量決定。您需要創建一箇中間IWaveProvider,以確保對基礎提供者的Read方法始終要求正確的編號。看看我爲類似問題創建的BlockAlignReductionStream

相關問題