抓取出现在windows音频混合器(C#或C++)中的音频会话



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

E.X.:(由于我刚刚创建了这个账户,我显然无法发布图片,所以这里有一个图片链接)

windows音频混合器

在这篇文章中,我希望将"系统声音"one_answers"流客户端引导程序"作为谨慎的音频流传送到其他地方,同时保持它们的原始目的地(本质上是将进入原始音频设备的音频同时复制到另一个设备)。

我希望在C#或C++中实现这一点。我仔细阅读了微软发布的音频API,虽然有些东西看起来接近我想要做的,但没有什么能切中要害。我感谢你的帮助。谢谢

可以使用IAudioSessionManager2::GetSessionEnumerator和friends枚举会话(示例C++代码随处可见)。标准Windows音量混音器应用程序也在使用此API。

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

最新更新