Я пытаюсь реализовать «автоматизацию громкости» в встроенном аудиопроигрывателе jQuery.
Как вы можете видеть из рисунка ниже, у меня есть наложенный линейный график с перетаскиваемыми точками.
Во время воспроизведения звука событие запускается каждую секунду (в настоящее время я могу увеличить частоту при необходимости), которая собирает данные.
Данные, которые я возвращаю, - это позиция звука и громкость (определяемая по высоте «точки» ... а не самой линии.
Это означает, что в настоящее время, несмотря на рендеринг наклона, громкость изменяется только при достижении каждой отдельной точки в песне. (точка, представляющая собой одну 'точку' на линии.
Я решил сделать это таким образом, чтобы улучшить производительность.
Однако использование этого метода означает, что мне нужно выполнить расчет, чтобы определить объем между точками.
Математика на самом деле не моя сильная сторона, и я очень мало помню о моих школьных днях.
Я храню переменные в настоящее время как: -
- x0 = позиция последней точки
- x1 = позиция следующей точки
- y0 = Последняя точка
- y1 = следующая точка
- позиция = текущая позиция в секундах
Надеюсь, вышесказанное имеет смысл!
Если я правильно помню, необходимое уравнение как-то связано с вычислением разницы между двумя точками, поэтому я предполагаю, что для этого просто понадобится простое уравнение с использованием содержимого вышеуказанных переменных.
Шкала громкости 0-100. Поэтому очевидно, что точка в верхней части формы волны должна иметь значение объема 100, а точка внизу должна иметь значение объема 0. При этом отдельные точки между ними рассчитываются по требуемому уравнению.
Если кто-нибудь сможет пролить свет на этот вопрос или помочь мне найти решение, это будет очень ценно!