【发布时间】:2016-03-17 21:30:40
【问题描述】:
这里的音频新手和数学挑战。我正在使用使用 -10000 到 0 范围的 DirectSound,将其转换为 0-100 范围。 我发现这个函数here 可以根据百分比获取毫:
private int ConvertPercentageToMillibels(double value)
{
double attenuation = 1.0 / 1024.0 + value / 100.0 * 1023.0 / 1024.0;
double db = 10 * Math.Log10(attenuation) / Math.Log10(2);
return (int)(db * 100);
}
我需要帮助来获得这个函数的倒数,基本上是为了获得基于毫贝的百分比。这是我到目前为止所得到的,但它不起作用:
private double ConvertMillibelsToPercentage(int value)
{
double db = value / 100;
double attenuation = Math.Pow(10, db) / 10 * Math.Pow(10, 2);
double percentage = (1.0 * attenuation) - (1024.0 * 100.0 / 1023.0 * 1024.0);
return percentage;
}
【问题讨论】:
标签: c# directx directshow directsound