我很难理解这里的逻辑。
我在Flutter中建立了一个媒体播放器,我试图让它向前跳过15秒,向后退15秒。
媒体播放器计算以下内容。
onDuration(),它以分钟和秒为单位获取音频轨道的整个持续时间。
然后是onPosition(),它以百分比形式计算其在音频文件中的位置。
例如,如果音频文件长10秒,则onPosition()函数中的1秒将是0.1。
我敢肯定,这里有一些疯狂的数学公式可以用来获取变量的持续时间和位置,该变量将以秒为单位显示位置,因此我可以提前+15秒。
到目前为止,我尝试输出的只是十进制%
让我感到困难的是,持续时间以分钟/秒的形式显示,而排名是%,因此需要进行转换。
答案 0 :(得分:2)
在这种情况下,三个简单的规则可能会为您提供帮助:
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秒做相反的事情。