在Windows混音器中读取音量值

时间:2016-09-12 09:32:55

标签: c# windows audio mixer

我正在为我和我的朋友创建一个程序来使用。 我想制作一个能够控制Windows Audio Mixer的程序。我正在使用C#

我已经知道如何控制音量。但是我想要一些关于控制每个应用程序在混音器内的单个音量级别的提示。

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

1 个答案:

答案 0 :(得分:0)

音频混音器(Sndvol)中的每个项目都是单个音频会话。 Here's来自MSDN的关于会话如何在后台运行的精彩内容。

完成此操作后,您需要订阅音频会话事件以通知以下事件:

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

直接从here

复制

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

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