1

我试图弄清楚如何在音频混音器中出现单个音频流时获取它们,以将它们重新路由到聚合音频设备。为了我正在制作的程序的目的,我特别希望将它们保持为谨慎的流(如果它们被混合到 2 通道混音,那将违背我想要实现的目的。)

EX:(因为我刚刚创建了这个帐户,我显然无法发布图片,所以这里是图片的链接)

视窗混音器

在这方面,我希望将“系统声音”和“流客户端引导程序”作为谨慎的音频流路由到其他地方,同时也保持它们的原始目的地(基本上将音频复制到原始音频设备到另一个同时)。

我希望在 C# 或 C++ 中执行此操作。我仔细阅读了微软发布的音频 API,虽然有些事情看起来与我正在尝试做的事情很接近,但没有什么能一针见血。我很感激任何帮助。谢谢。

4

1 回答 1

1

可以使用IAudioSessionManager2::GetSessionEnumerator和朋友枚举会话(示例 C++ 代码在这里那里)。标准的 Windows 音量混合器应用程序也在使用这个 API。

然而,API 无法访问数据流,您也不会拥有(无论它们是否被下混合,您肯定没有数据)。您也不能将流重新路由到另一台设备。不允许应用程序干扰那么深。您可以做的最好的事情是创建自己的设备,以交互方式将其选择为默认输出设备,然后接受来自通过该设备播放音频的应用程序的数据。

于 2015-04-29T19:32:19.053 回答