最大声级是多少
Posted
技术标签:
【中文标题】最大声级是多少【英文标题】:What is the maximum sound level 【发布时间】:2011-12-13 10:49:05 【问题描述】:我正在创建一个小闹钟,在启动闹钟之前必须将扬声器音量设置为最大。一切正常,但我不知道扬声器的最大值是多少。你们中有人知道或知道我在哪里可以找到它吗?
这是我设置扬声器音量的方法:
defaultDevice.AudioEndpointVolume.MasterVolumeLevel = 1;
BR
【问题讨论】:
我猜最大值是 100? 这与 WPF 或 .net-4.0 无关,所以我删除了这些标签。你用的是什么音频库? 应该是 11。这样,如果有人把它一直调到 10,但又想大声一点,他们可以把它调到 11。/spinal Tap。 当我将它设置为 1 时,它在测试计算机上工作,但是当我尝试将它设置为 3 时,它在某些计算机上崩溃,并显示值超出范围的消息。这就是为什么我想为每台计算机找到***别 【参考方案1】:根据您的提示,我找到了答案。我的问题的正确答案是:
defaultDevice.AudioEndpointVolume.MasterVolumeLevel = defaultDevice.AudioEndpointVolume.VolumeRange.MaxdB;
感谢您的帮助
【讨论】:
【参考方案2】:看看IAudioEndpointVolume::GetVolumeRange API。它会为您提供以分贝为单位的音量范围。
【讨论】:
嘿,我有这两个音频设备private readonly MMDeviceEnumerator devEnum = new MMDeviceEnumerator(); private readonly MMDevice defaultDevice;
,但我找不到 getVolumeRange - 只有一个我不知道如何使用的 VolumeRange。你能举个例子吗?【参考方案3】:
如果您使用的是IAudioEndpointVolume 接口,它有一个GetVolumeRange 方法可以获取以分贝为单位的音量范围。
【讨论】:
嘿,我有这两个音频设备private readonly MMDeviceEnumerator devEnum = new MMDeviceEnumerator(); private readonly MMDevice defaultDevice;
,但我找不到 getVolumeRange - 只有一个我不知道如何使用的 VolumeRange。你能举个例子吗?
您看到的是 C++ 和 C# 之间的区别。在线文档适用于 C++,它没有属性,因此使用 Get 和 Set 前缀。在 C# 中,相同的方法成为属性,因此 Get/Set 前缀对您隐藏。以上是关于最大声级是多少的主要内容,如果未能解决你的问题,请参考以下文章