2013-03-13 79 views
0

目前我正在构建一个合成器。我想知道是否有多个waveOut()对象,因为我希望我的合成器是复音(同时按下多个按键)。NAudio多个WaveOut对象

回答

1

您不应该打开多个WaveOut对象。相反,使用MixingSampleProvider创建一个混音器,将所有合成器声音的输出相加在一起。它允许动态添加输入并在完成时自动删除它们。如果没有输入,您需要对其进行配置以产生无尽的沉默流,否则WaveOut会认为没有其他东西可以自动播放和停止。

+0

感谢Mark Heath,想知道是否有任何使用MixingSampleProvider的示例?亲切的问候 – frz 2013-03-13 14:07:52

+0

在NAudioWPF演示代码中,有一个使用它的鼓机示例。 – 2013-03-13 14:21:23

+0

我刚刚检查了源代码,它吓坏了我!目前我的程序使用Wave Stream创建正弦波,当按下某个键时,它使用WaveOut()播放它。我将如何去阅读MixingSampleProvider中的waveStream对象。对于问题超载抱歉,亲切的问候 – frz 2013-03-13 15:46:57