0

我是音频编程的新手,我有一个任务要做,但我不知道怎么做。如果你能引导我朝着正确的方向前进,那对我来说意义重大。

我想通过一个声音设备的所有通道播放不同的 mp3 文件,例如在 7.1 卡中,通过所有 8 个单声道。但我想单独控制它们,我的意思是,能够播放、暂停、停止和所有其他标准播放器选项。

我一直在测试 MultiplexingWaveProvider,它工作得很好,但我没有播放或停止音乐等选项。然后我尝试了 Naudio 的 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();
4

1 回答 1

0

您不能打开多个 AsioOut 实例。您必须提供多通道输入。这MultiplexingWaveProvider是你需要使用的。我不确定您的意思是您没有播放和停止的选项 - 您只需使用 Play。如果您想播放某些频道而不播放其他频道,那么您将实现另一个 WaveProvider,它可以在从其源读取和输出静音之间切换。换句话说,所有频道一直在播放,但其中一些正在播放静音。

于 2013-02-21T16:01:06.257 回答