首页 > 解决方案 > 如何在自定义音频端点枚举器中动态添加/删除音频端点?

问题描述

简而言之,我有两个问题:

  1. 如何在“自定义音频端点枚举器”中动态添加/删除音频端点?

  2. 创建/删除设备后如何通知其他 DLL/应用程序?

长话短说:

是否有任何示例或代码片段来显示如何在“自定义音频端点枚举器”中动态添加/删除音频端点?在远程 RDS 会话中,我们可以在会话连接期间创建/删除音频端点吗?看起来“mstsc.exe”有这个能力,但我们不知道它是怎么做的。

我已经查看了“自定义音频端点枚举器”的指南以及来自 Google/MSDN 的其他文档,例如this

我发现我无法获得任何动态添加/删除音频端点的线索。由于自定义音频端点枚举器是一个 DLL,我认为在 DLL 中创建一个专用线程并等待信号创建音频端点应该是可以的(不确定枚举器是否是一个好的做法,但我们先把它放在一边)。然后是第二个问题:如何让系统或其他应用程序/dll 意识到这一点,因为它们可能已经启动(例如作为服务运行的 audiodg.exe)?我的理解是,如果创建或删除任何音频端点,则需要调用函数“GetTSAudioEndpointEnumeratorForSession”,以便其他人知道它。但是如何为其他进程重新触发这个函数调用(或者是否有必要这样做)?

非常感谢您的任何建议!(我在 MSDN 表单中发布了同样的问题,希望能在这里和那里获得好运。)

标签: c++windowsaudiords

解决方案


推荐阅读