如何获取媒体播放器的时间位置

How to get the Time position of a media player

我很难理解这里的逻辑。

我在 Flutter 中构建了一个媒体播放器,我试图让它向前跳 15 秒并向后跳 15 秒,经过计算。

媒体播放器计算如下。

onDuration(),它以分钟和秒为单位获取音轨的整个持续时间。

然后是 onPosition(),它以音频文件的百分比计算它的位置。

例如,如果音频文件的长度为 10 秒,则在 onPosition() 函数中 1 秒将为 .1。

我敢肯定这里有一些疯狂的数学公式可以用来获得持续时间和位置进入一个变量,该变量将以秒为单位显示位置,这样我就可以向前跳 +15 秒。

到目前为止,我尝试过的所有输出都是小数 %

让我感到困难的是,持续时间以 min/secs 形式出现,而位置是 %,因此需要进行转换。

在这种情况下,简单的三法则可能对您有所帮助:

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

翻译成 Dart:

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

要前进15秒,请将返回值添加到您的实际位置。向后15秒做相反的动作