【问题标题】:'value >= min && value <= max': is not true - flutter'value >= min && value <= max': 不正确 - 颤动
【发布时间】:2020-09-09 10:10:40
【问题描述】:

我的音乐播放器播放第一个文件完全正常,但切换到下一首歌曲时,它显示此错误:

'package:flutter/src/material/slider.dart':断言失败:第 132 行 pos 15:'value >= min && value

我发送给滑块的值不会是负数甚至是空值, 我以这种方式发送值:

          Slider(
                  value: _duration != null
                      ? _duration > defdur
                          ? _position?.inMilliseconds?.toDouble() ?? 0.0
                          : 0.0
                      : 0.0,
                  onChanged: (double value) {
                    return audioPlayer.seek((value / 1000).roundToDouble());
                  },
                  min: 0.0,
                  max: _duration != null
                      ? _duration > defdur
                          ? _duration.inMilliseconds.toDouble()
                          : 0.0
                      : 0.0),

defdur 是我这样设置的默认持续时间:

var defdur = Duration(milliseconds: 0);

所以基本上我有两个内联 if 语句,用于检查值是否为空或不大于 1 毫秒,返回 0 仍然出现问题!

【问题讨论】:

  • 只是预感,可能换歌时滑块位置没有重置,新歌比旧歌短...?
  • 原来如此,非常感谢,我真的很感激

标签: flutter flutter-dependencies flutter-test


【解决方案1】:

只需将minmax 属性移动到value 属性和onChanged 函数之间,将如下所示:

value : yourValue,
min:0.0,
max: 1.0,
onChanged: (double NewValue){
 //YOUR CODE
}

【讨论】:

    【解决方案2】:

    enter image description here

    max参数加1即可,因为比如有些音频片段的实时时间是4:00:01,所以这个数字已经大于4:00:00了

    【讨论】:

    • 尝试在此处复制粘贴代码并使用代码格式,而不是上传代码图片
    【解决方案3】:

    试试这个:

    return audioPlayer.seek((value / 1000).roundToDouble().round());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-26
      • 1970-01-01
      • 2010-11-01
      • 2021-01-27
      • 2019-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多