MediaPlayer.Volume control - PullRequest
       18

MediaPlayer.Volume control

1 голос
/ 22 сентября 2011

У меня есть ползунок, где я получаю значение от 0 до 100 для регулировки громкости.MediaPlayer.Volume ожидает значение от 0,0 до 1,0, тогда как 0 = -96 дБ и 1 = -0 дБ.В настоящее время я использую следующий код для регулировки линейных значений из моего ползунка:

 float newVolume = (float)(Math.Sqrt(sliderValue) / 10);
 newVolume = MathHelper.Clamp(newVolume, 0.0001f, 1.0f);
 MediaPlayer.Volume = newVolume;

Это работает лучше, чем прямое сопоставление значений от 0 до 100, но в верхней половине корректировка все еще довольно низкая по сравнению с нижнейполовина.Есть ли лучшие решения?

1 Ответ

1 голос
/ 11 мая 2012

Это работает для меня, где «значение» от 0 до 100

        value = MathHelper.Clamp(value, 0f, 100f);
        var logged = Math.Log(value + 1) / Math.Log(101);
        MediaPlayer.Volume = MathHelper.Clamp((float)logged, 0.001f, 1.0f);
...