PDA

Просмотр полной версии : Ползунок отражающий позицию песни


Dip52
15.01.2013, 02:31
Здравствуйте. Подскажите, пожалуйста. :)
Есть команда, которая перемещает ползунок (в объекте "шкала времени") в зависимости от того, какая позиция проигрывания у песни (например одна минута — 20 пиксель).
slider.x = positionSound * width / lengthSound;

Как можно преобразовать эту команду, чтобы получить "обратное" — чтобы позиция песни зависила от позиция ползунка. Например, как сделать так, чтобы когда я перемещал ползунок на 20 пиксель, то воспроизводилась песня с первой минуты? Как воспроизвести я знаю, но вот формулу не могу понять.

Воспроизведение на 1 минуте.
Длина песни 10 минут.
1 минуту умножаем на ширину шкалы времени, потом всё делится на 10 минут.
1 * 40 / 10 = 4.
На 4 пикселе будет находится ползунок.

Положение ползунка = 4;
Ширина временной шкалы = 40;
Длина песни = 10;
Положение песни = n

Формула: Ширина шкалы времени делится на Положение ползунка и потом делится на длину песни.

40 / 4 / 10 = 1

Положение песни = 1 минута.

Я попробовал действовать по такому алгоритму, но он оказался неудачным.
Подтолкните меня в правильную сторону. Спасибо за внимание. :)

caseyryan
15.01.2013, 07:26
Гипотетический код:

соотношение = (положениеПолзунка / общаяДлинаПолоскиПолзунка) // получаем число от 0 до 1, с помощью которого можно расчитать необходимую точку в песне
точкаВоспроизведения = int(общаяДлинаПесни * соотношение);

Примерно так

Dip52
15.01.2013, 19:25
Гипотетический код:

соотношение = (положениеПолзунка / общаяДлинаПолоскиПолзунка) // получаем число от 0 до 1, с помощью которого можно расчитать необходимую точку в песне
точкаВоспроизведения = int(общаяДлинаПесни * соотношение);

Примерно так

Спасибо, конечно, но теперь возникла проблема: после того, как я отжимаю ползунок, песня уже воспроизводится не с того места, где был ползунок (то есть ползунок отходит назад на n пикселей или уходит вперед на n пикселей), а немного (иногда много) подальше/ближе (от места отпускания).