从一个音频文件同时播放多个音频流

时间:2009-04-21 19:05:47

标签: audio multimedia

我编写了一个应用程序,它从中央服务器接收媒体文件,并根据播放列表播放这些文件。一切顺利。 客户已联系我们,并希望使用我们的应用程序在自助服务终端风格的应用程序中播放一些音频文件作为演示文稿。到目前为止,这么好,我们的应用程序可以解决这个问题。

他要求作为一个潜在的功能,我们将在售货亭的前面有许多耳机插座。每个耳机插孔将以不同的语言播放相同的音频演示文稿。

我想出了使用多种语言的演示文稿编码单个音频文件的想法,以及不同频道中的每种语言。然后,我们需要一个可以解码每个通道的声卡,并将其输出到不同的耳机插孔上。 事实上,虽然我认为这个理论是合理的,但我完全不知道这是否可行以及将其拉下来需要做些什么。

有什么想法吗?!

作为旁注:应用程序使用Media Player作为处理音频和视频回放的底层组件。对于我们可用于生成多声道音频流的软件以及我们可用于解码流的硬件(USB声卡会很好),我感谢您的帮助。 谢谢!

2 个答案:

答案 0 :(得分:2)

你需要使用多个文件而不是频道,这样会更容易 而不是使用媒体播放器使用DirectShow(在.NET上有DirectShow.NET),在DirectShow中,您在同一图表上有多个文件的符号。

您将能够控制哪个音频设备播放哪些文件,以及将在所有文件上执行播放,暂停,停止命令,而无需担心同步。 有很多关于如何使用DiectShow构建媒体播放器的示例,将它们扩展为使用多个文件应该非常简单。

对于HW,请查看this(具有8个输出通道的USB)

答案 1 :(得分:2)

我认为使用Shay的硬件,您可以获得完整的解决方案: 使用每个通道上的不同单声道音轨编码7.1文件。 在7.1模式下使用8声道输出设备,每个端口都有不同的耳机,你就可以了。或者,如果您只有6种语言,则可以使用5.1文件。许多PC都内置了5.1输出,你只需要3个分离器来打破每个插孔的左右声道。

您可以使用Windows Media Encoder或其他专业音频工具进行编码。