2014-03-07 106 views
0

我正在使用NAudio進行音效工作。我有特定的任務。我有8聲道聲卡。我怎樣才能在1個,2個或更多的特定頻道播放聲音。例如,我有這樣的代碼:用NAudio在特定頻道上播放聲音

   Device = new WaveOut(); 
       var provider = new SineWaveProvider32(); 
       provider.SetWaveFormat(44100, 1); 
       provider.Frequency = 1000f; 
       provider.Amplitude = 1f; 
       Device.DeviceNumber = number; 
       Device.Init(provider); 
       Device.Play(); 

此代碼可在所有通道上播放聲音。 我需要改變這個嗎?

回答

3

您可以使用一個MultiplexingWaveProvider並傳入一個沉默,爲一個頻道生成wave提供程序,爲另一個頻道傳遞SineWaveProvider32。

另請注意,您的聲卡可能不一定支持通過WaveOut API的多聲道音頻。

+0

非常感謝,@MarkHeath – EXTRAM