2013-02-20 89 views
0

我是音頻編程新手,我有一個任務要做,我不知道該怎麼做。如果你能指引我走向正確的方向,那對我來說意義重大。單聲道多聲道播放器

我想通過一個聲音設備的所有通道播放不同的mp3文件,例如7.1聲卡,通過所有8個單聲道。但我想單獨控制它們,我的意思是能夠播放,暫停,停止和其他標準播放器選項。

我一直在測試MultiplexingWaveProvider,它工作得很好,但我沒有選擇播放或停止音樂等。然後我嘗試了ASIO驅動程序,嘗試爲每個頻道分別處理每個頻道但最後一次呼叫我給ASIO構造函數覆蓋了第一個。我怎樣才能使這個工作?使用Naudio還是其他免費庫?

這裏是我的代碼

AsioOut waveOutdevice1 = new AsioOut(); 
waveOutdevice1.ChannelOffset = -1; 
waveOutdevice1.Init(input1); 

AsioOut waveOutdevice2 = new AsioOut(); 
waveOutdevice2.ChannelOffset = 1; 
waveOutdevice2.Init(input2); 

waveOutdevice1.Play(); 
waveOutdevice2.Play(); 

回答

0

無法打開AsioOut的多個實例。你必須提供多通道輸入。 MultiplexingWaveProvider是你需要使用的。我不確定你的意思,你沒有選擇玩和停止 - 你只是使用遊戲。如果您想播放某些頻道但不播放其他頻道,則可以實現另一個WaveProvider,它可以在從其來源讀取和輸出靜音之間進行切換。換句話說,所有頻道都在播放,但其中一些頻道正在播放靜音。

+0

嗨,馬克,謝謝你的回答。你能否指點我一個可以切換WaveProvider的例子,因爲我嘗試過沒有成功,除此之外我還有一個問題,如果我這樣做並切換WaveProvider,那麼聽衆不會注意到其他頻道中的差距?怎麼辦? – Efrain 2013-02-28 03:48:30