【问题标题】:How to get the Time position of a media player如何获取媒体播放器的时间位置
【发布时间】:2019-05-21 00:59:08
【问题描述】:

我很难理解这里的逻辑。

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

媒体播放器计算以下内容。

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

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

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

我确信这里有一些疯狂的数学公式,可以将持续时间和位置放入一个变量中,该变量将以秒为单位显示位置,这样我就可以向前跳过 +15 秒。

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

让我感到困难的是持续时间以分钟/秒为单位,而位置为 %,因此需要进行转换。

【问题讨论】:

  • onDuration 给你一个Duration 对象? String 或许?
  • onDuration() 以秒为单位提供持续时间,我将其转换为双精度。

标签: ios swift dart flutter audio-streaming


【解决方案1】:

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

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 秒。

【讨论】:

  • 问题是,我不知道我的实际位置是什么,除了小数百分比。如果我知道我的时间位置是什么,我会加 15。
  • 多亏了这个,我才弄明白了。对不起,我做错了其他事情。感谢您的帮助!
  • 我没听懂你的回答,能否请你编辑举例?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多