2

如何在我的电脑上同时播放 3 首不同的音乐曲目,这样歌曲 1 在扬声器 1 中播放,歌曲 2 在扬声器 2 中播放...

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

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

感谢您的专家意见。

4

2 回答 2

3

http://www.esi-audio.com/products/maya44usb+/用 NAudio c# 库试试这个,看看 AsioOut 和 MultiplexingWaveProvider

于 2012-11-12T08:59:53.257 回答
0

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

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

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

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

于 2012-11-01T15:06:21.780 回答