c# - 在Windows调音台中读取音量值

标签 c# windows audio mixer

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

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

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

最佳答案

音频混合器(Sndvol)中的每个项目都是一个音频 session 。 Here's是MSDN上有关 session 如何在后台工作的很好的读物。

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

  • The master volume level or muting state of the session submix has changed.
  • The volume level of one or more channels of the session submix has changed.
  • The session has been disconnected.
  • The activity state of the session has changed to active, inactive, or expired.
  • The session has been assigned a new grouping parameter.
  • A user-interface property of the session (icon or display name) has changed.


直接从here复制。

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

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

关于c# - 在Windows调音台中读取音量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39447283/

相关文章:

c# - Microsoft ASP.NET Redis session 状态引发异常

windows - Dos 提示符 - 仅在出错时暂停执行/显示?

c - 如何更新通过 CursorPosition 插入的字符(C/Windows API)

python - Python声音拼接

c# - 动态创建Texture2D

c# - 为什么Linq-to-SQL生成的代码是错误的,但是编译的时候却没有报错

具有命名/标记类型的 C# 字典

c++ - 关于使用多线程定期强制检查软件更新的问题

audio - 在Audacity中为链式店添加白噪声

audio - 有没有办法选择我使用Windows Phone 8.1从OneNote生成的音频文件?