Как получить временную позицию медиаплеера - PullRequest
0 голосов
/ 21 мая 2019

Мне нелегко с логикой здесь.

Я строю медиаплеер во Flutter и пытаюсь заставить его пропустить 15 секунд и вернуться назад на 15 секунд, подсчитано.

Медиаплеер рассчитывает следующее.

onDuration (), который получает всю длительность звуковой дорожки в минутах и ​​секундах.

Затем onPosition (), которая вычисляет позицию в процентах по отношению к аудиофайлу.

Так, например, если длина аудиофайла составляет 10 секунд, то 1 секунда в функции onPosition () составит 0,1.

Я уверен, что здесь есть какая-то сумасшедшая математическая формула, которую можно сделать, чтобы получить длительность и позицию для перехода в переменную, которая будет отображать позицию в секундах, чтобы я мог пропустить ее на +15 секунд.

Пока все, что я пробовал, при выводе - это десятичное число%

Что мешает мне, так это продолжительность, приходящаяся в мин / с, в то время как позиция составляет%, поэтому необходимо выполнить конвертацию.

1 Ответ

2 голосов
/ 21 мая 2019

Простое правило из трех может помочь вам в этой ситуации:

Audio duration in seconds / 15 seconds = 1 / x
x = 15 seconds / Audio duration in seconds

Перевод в дротик:

double percentageOf15SecondsInDuration(Duration duration) => 15 / duration.inSeconds;

Чтобы переслать 15 секунд, добавьте возвращаемое значение к вашей фактической позиции. Сделайте обратное 15 секунд назад.

...