Open qbait opened 2 years ago
This error occurs also to me, it happens when drawing the progress bar. It computes the progress bar as:
for (final DurationRange range in value.buffered) {
final double start = range.startFraction(value.duration!) * size.width;
final double end = range.endFraction(value.duration!) * size.width;
canvas.drawRRect(
RRect.fromRectAndRadius(
Rect.fromPoints(
Offset(start, baseOffset),
Offset(end, baseOffset + barHeight),
),
const Radius.circular(4.0),
),
colors.bufferedPaint,
);
}
The problem is caused because start
is NaN
. So if we dig into the implementation of startFraction(duration)
we find this.
double startFraction(Duration duration) {
return start.inMilliseconds / duration.inMilliseconds;
}
So, what is the problem, the problem is that some times (I don't know why yet), the reported video duration is 00:00:00
, so in that case the division is a division by 0, which returns 0.
So next step is to try to find why is the video reporting a 00:00:00
video duration.
Any solutions there ?
any fix
I implemented minor fix for it by:
double startFraction(Duration duration) {
if (start.inMicroseconds == 0 || duration.inMilliseconds == 0) return 0.0;
return start.inMilliseconds / duration.inMilliseconds;
}
Anything on this?
I run your
reusable_video_list
sample without any changes on iOS simulator, and I'm getting the following error