我正在创建一个程序供我和我的 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/