0

我正在创建一个程序供我和我的朋友使用。我想制作一个可以控制 Windows 音频混音器的程序。我正在使用 C#

我已经有了如何控制音量的想法。但我想要一些关于控制混音器内每个应用程序的单独音量级别的技巧。

主要问题是(有点有趣):如何读取每个应用程序的单独仪表内的音量值?换句话说,我想读取/获取应用程序的音量条/米内的绿色和灰色条的值。我附上了一张图片,说明了我的意思 Windows 音频混合器

4

1 回答 1

0

混音器 (Sndvol) 中的每个项目都是一个单独的音频会话。这是MSDN 上关于会话如何在后台工作的精彩内容。

除此之外,您需要订阅音频会话事件才能收到以下事件的通知:

  • 会话子混音的主音量级别或静音状态已更改。
  • 会话子混音的一个或多个通道的音量级别已更改。
  • 会话已断开连接。
  • 会话的活动状态已更改为活动、非活动或过期。
  • 已为会话分配了一个新的分组参数。
  • 会话的用户界面属性(图标或显示名称)已更改。

直接从这里复制过来。

核心音频 API 是 Windows SDK 的一部分,因此您需要使用 P/Invoke 来实际调用该代码。我认为 Core Audio API 有一些 .NET 包装器,通过简单的搜索应该很容易找到它们。

编辑:这是您尝试做的一个好的开始。它包括用于管理会话声音的代码。我没有仔细看,所以我不确定它是否实现了会话事件。

于 2016-09-12T09:51:52.880 回答