'值>=最小值&&值〈=最大值':不正确- Flutter

hmae6n7t  于 2023-01-27  发布在  Flutter
关注(0)|答案(5)|浏览(121)

我的音乐播放器正在播放第一个文件完全正常,但当切换到下一首歌时,它显示此错误:
' Package :flutter/源代码/材料/滑块. dart':Assert失败:第132行位置15:'值〉=最小值&&值〈=最大值':不是真的。
我发送给slider的值不会是负数甚至是null,我是这样发送值的:

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语句,用于检查值是否为null或不大于1毫秒,返回0,但问题仍然发生!

kpbwa7wx

kpbwa7wx1#

enter image description here
只需将max参数增加1,因为,例如,一些音频剪辑的真实的时间为4:00:01,因此该数字已经大于4:00:00

b91juud3

b91juud32#

试试这个:

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

iswrvxsc3#

我张贴在这里为任何人谁仍然无法修复它,因为这是搜索答案时的顶部职位。在我的情况下,它显示这个错误,只要歌曲开始播放。我使用提供程序包来管理我的音频播放器之间的状态被最大化和最小化,发生了什么是当歌曲开始播放的位置已经改变,但我没有't听onDurationChanged,直到我在播放器的最大化模式,因此我的当前位置大于持续时间。
我做了两件事:
第一:我在歌曲开始播放时就听了"onDurationChanged“,以尽快获取歌曲的持续时间,这样我就不会以位置大于最大值而结束。
第二:正如上面的答案所建议的,我增加了最大参数1,以确保当前位置永远不会超过最大值,特别是在歌曲结束时。

fwzugrvs

fwzugrvs4#

我认为**Flutter滑块的最小最大值为20,**保持最大值20或大于20如果值〈20?20,则只需添加一个条件:价值

Slider(
                      min: 0,
                      max: value.toInt() < 20 ? 20 : value,
                      value: _value,
                      onChanged: (value) {}
                )
oxf4rvwz

oxf4rvwz5#

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

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

相关问题