Jquery音频播放器音量自动化。计算两点之间的音量位置

时间:2012-02-10 15:04:30

标签: jquery math equation

我正在尝试在我构建的jQuery音频播放器中实现“音量自动化”。

正如您在下面的图片中看到的那样,我有一个叠加的折线图,它有可拖动的点。

当音频正在播放时,事件会每秒触发一次(当前,我可能需要提高频率),这会收集数据。

我要返回的数据是音频位置和音量(根据'点'的高度确定...而不是线本身。

这意味着当前尽管呈现了斜率,但只有在歌曲中达到每个单独的点时音量才会改变。 (一点是线上的一个'点'。

enter image description here

我选择以这种方式表现性能原因。

但是,使用此方法意味着我需要执行计算以计算点之间的音量。

数学真的不是我的强项,我在学校的日子里记得很少。

我目前将变量存储为: -

  • x0 =最后一个位置
  • x1 =下一个点位置
  • y0 =最后一点
  • y1 =下一点
  • position =以秒为单位的当前位置

我希望以上内容有道理!

如果我没记错,所需的等式与计算两点之间的差异有关,所以我假设这只需要一个使用上述变量内容的简单等式。

音量标度为0-100。因此,在波形顶部的一个点应该具有100的体积值,并且底部的点应该具有0的体积值。其间的各个点由所需的等式计算。

如果有人能够对这个问题有所了解或者帮助我指出解决方案,那将非常感激!

1 个答案:

答案 0 :(得分:1)

所以你想找到两点之间的音量(y)?如(position-x0)*(y1-y0)+ y0?

请注意,基于给定的x0和x1相隔1个单位,这是简化的。

详细信息:

找到斜率:斜率=(y1-y0)/(x1-x0)

找到我们介于x0和x1之间的距离:距离=(位置 - x0)/(x1 - x0)

斜率*距离将给出我们迄今为止的变化:变化=斜率*距离

要查找新值,请将更改添加到最后一个值:y position = change + y0;

重新替换所有变量给我们: y0 +(((y1 - y0)/(x1 - x0))*((位置 - x0)/(x1 - x0)))

如果您的样本是1个单位,则可以省略(x1 - x0)项。