我的音乐播放器正在播放第一个文件完全正常,但当切换到下一首歌时,它显示此错误:
' 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,但问题仍然发生!
5条答案
按热度按时间kpbwa7wx1#
enter image description here
只需将max参数增加1,因为,例如,一些音频剪辑的真实的时间为4:00:01,因此该数字已经大于4:00:00
b91juud32#
试试这个:
iswrvxsc3#
我张贴在这里为任何人谁仍然无法修复它,因为这是搜索答案时的顶部职位。在我的情况下,它显示这个错误,只要歌曲开始播放。我使用提供程序包来管理我的音频播放器之间的状态被最大化和最小化,发生了什么是当歌曲开始播放的位置已经改变,但我没有't听
onDurationChanged
,直到我在播放器的最大化模式,因此我的当前位置大于持续时间。我做了两件事:
第一:我在歌曲开始播放时就听了"onDurationChanged“,以尽快获取歌曲的持续时间,这样我就不会以位置大于最大值而结束。
第二:正如上面的答案所建议的,我增加了最大参数1,以确保当前位置永远不会超过最大值,特别是在歌曲结束时。
fwzugrvs4#
我认为**Flutter滑块的最小最大值为20,**保持最大值20或大于20,如果值〈20?20,则只需添加一个条件:价值
oxf4rvwz5#
只需将
min
和max
属性移到value
属性和onChanged
函数之间,如下所示: