需要多个声音输出到多个扬声器

时间:2012-10-31 04:54:36

标签: c# audio

如何在电脑上同时播放3首不同的音乐曲目,以便在扬声器1中播放song1,在speaker2中播放song2 ...

这可能以编程方式进行吗?我需要哪些额外的硬件?我需要3个单独的声卡吗?鉴于硬件已到位,我如何将特定歌曲的声音输出“路由”到特定的扬声器。

或者,是否有可以处理多个输入和输出的特殊硬件?

感谢您的专家意见。

2 个答案:

答案 0 :(得分:3)

http://www.esi-audio.com/products/maya44usb+/尝试使用NAudio c#Libary查看AsioOut和MultiplexingWaveProvider

答案 1 :(得分:0)

如果您拥有与所有歌曲一样多的输出(总数)(我假设您只是以单声道播放每首歌曲)。解决这个问题的最简单方法是为每首歌打开一个“流”并通过该流播放歌曲。您必须做一些工作来打开具有正确数量的频道的每个流,并确保歌曲在正确的频道播放。

该技术存在两个潜在问题:1。某些音频API /硬件组合不允许多个流访问同一设备。这通常是Windows / ASIO上的一个问题,但在其他情况下可能是一个问题 - 我不是Windows专家。 2.确保所有流都完全同步有点棘手。如果您需要紧密同步,则应使用单个流和单个硬件设备。

如果上述问题是一个问题,那么你应该得到一些至少有三个输出的音频硬件,并打开一个可以访问三个频道的流。

您可以将PortAudio用于音频I / O,使用libsoundfile读取声音文件(当然,这两项任务还有其他选项)。