我正在實現一個程序,用於從輸入設備讀取音頻流並使用NAudio將其發送到輸出設備。爲此,我使用WaveIn
及其DataAvailable
事件從輸入流中獲取數據。要寫數據,我即將使用WaveOut
,這也意味着我需要使用一些IWaveProvider
的實現。使用隊列來實現我的需求似乎非常簡單。除了一件事情:當隊列爲空並調用方法時會發生什麼?在文檔中我沒有發現任何關於此的信息。選項我想我有:NAudio音頻中繼器
- 該方法應該阻塞,直到有些數據可用。
- 該方法立即返回0,表示當前沒有數據可用。
- 用零填充緩衝區。
我想使用選項1或2,但後來我發現BufferedWaveProvider
(和WaveInProvider
,使用BufferedWaveProvider
內部),其使用選項3.從這一點,我推斷選項3是優選的一個。
問題是,我推斷是否正確,應該使用選項3?如果我使用選項1或2會發生什麼?這甚至會工作嗎?
感謝您的信息。 – svick