繁体   English   中英

在Windows调音台中读取音量值

[英]Reading the value of the volume in the windows mixer

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

我已经有了如何控制音量的想法。 但是我想要一些技巧来控制混音器中每个应用程序的单独音量。

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

音频混合器(Sndvol)中的每个项目都是一个音频会话。 这是 MSDN上有关会议如何在后台工作的精彩读物。

这样一来,您就需要订阅音频会话事件,才能收到以下事件的通知:

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

这里直接复制。

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

编辑:这是您尝试做的一个好的开始。 它包含用于管理会话声音的代码。 我没有对其进行全面的介绍,因此不确定它是否实现了会话事件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM