【发布时间】:2012-05-11 06:23:05
【问题描述】:
我有一个滑块,可以在其中获取 0 到 100 之间的值来调整音量。 MediaPlayer.Volume 需要一个介于 0.0 和 1.0 之间的值,而 0=-96db 和 1=-0db。目前我使用以下代码来调整滑块的线性值:
float newVolume = (float)(Math.Sqrt(sliderValue) / 10);
newVolume = MathHelper.Clamp(newVolume, 0.0001f, 1.0f);
MediaPlayer.Volume = newVolume;
这比直接将 0 映射到 100 值效果更好,但与下半部分相比,上半部分的调整仍然相当低。有没有更好的解决方案?
【问题讨论】:
-
人耳是对数的,不是二次的。如果它的单位是分贝,音量应该已经弥补了这一点。如果没有,你会使用 Math.Log。
标签: c# xna media-player