在c#中获取主音量
我需要获取声卡输出的当前音量。
有什么想法吗?
I need to get the current volume of the output to the sound card.
Any ideas how?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我需要获取声卡输出的当前音量。
有什么想法吗?
I need to get the current volume of the output to the sound card.
Any ideas how?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(7)
您可以使用 IAudioMeterInformation 获取这些值Vista 和 Win 7 中的 CoreAudio API。
托管包装器可在 NAudio 中使用(从 MMDevice 获取 AudioMeterInformation)。
You can get at these values using IAudioMeterInformation in the CoreAudio APIs in Vista and Win 7.
Managed wrappers are available in NAudio (get at the AudioMeterInformation from the MMDevice).
来自修改后的 c# 中的麦克风音量文章
from modified Microphone Volume in c# article
当我正在开发一个(尚未发布......)应用程序时,我解决了这个问题,该应用程序在没有其他声音存在时启动某种“电梯音乐”。
按照 Mark Heath 给出的精彩提示,我得到了我想要的:
I solved this when I was working on a (still yet to be released...) application that initiates some kind of "elevator music" when no other sound is present.
Followed the brilliant tips given by Mark Heath, I got what I wanted :
在 MSDN 信息中查找:
这是“通用”信息。 C# 可能有更方便的方法(我不知道)。
Look in MSDN information for:
This is "common" information. It is possible C# has more convenient ways (I do not know).
也许 winmm.dll 可以帮助您:
来自 EDDYKT (VB):
或者也许是这样: http ://blackbeltvb.com/index.htm?free/mcisamp.htm
Maybe the winmm.dll can help you :
From EDDYKT (VB):
Or maybe this : http://blackbeltvb.com/index.htm?free/mcisamp.htm
我不相信有一种简单的方法可以在 XP 下获得当前的峰值。 MIXERCONTROL_CONTROLTYPE_PEAKMETER 存在,但我相信它很大程度上不受支持(它在我当前的机器上)。我猜您将创建自己的方法来分析当前音频输出,请查看 DSP 部分 此处。
您可以在运行时决定使用哪种方法,XP 和 Vista/7 有非常不同的处理音频的方法。我之前写的关于这个问题的一些可能有用的信息可以是 这里。
在我看来,MSDN 文档和 Larry Osterman(他也是 SO 的成员)博客可能是当前 Windows 音频基础结构的两个最有用的来源。
I don't believe there is an easy way to get the current Peak under XP. MIXERCONTROL_CONTROLTYPE_PEAKMETER is present but I believe it is largely unsupported (it is on my current machine). I am guessing you will have create your own method of analysing the current audio output, have a look at the DSP section here.
You can just decide at runtime which method you would like to use, XP and Vista/7 have very different methods of dealing with the audio. Some possibly useful information on this matter I wrote previously can be here.
The MSDN documentation and Larry Osterman's (he is also a member on SO) blog are probably the 2 most useful sources for current windows audio infrastructure in my opinion.
查看代码项目中的此代码:使用 DirectX 的 LED 风格音量表
它有一个 AnalogSignalMeter 对象,该对象会触发一个事件,报告当前左右扬声器的电平。
Check out this code from Code Project: LED Style Volume Meter Using DirectX
It has an AnalogSignalMeter object, that is fired an event which will report the current left and right speaker level.