onPlaybackStateChanged method

  1. @override
void onPlaybackStateChanged(
  1. String state
)
override

Implementation

@override
void onPlaybackStateChanged(String state) {
  final bool isEnded = state == 'ended';
  final bool isReady = state == 'ready';
  final bool isBuffering = state == 'buffering';
  final bool shouldKeepLoading =
      !isReady && !isEnded && value.error == null && (isBuffering || value.duration == Duration.zero || value.isLoading);

  value = value.copyWith(
    isLoading: shouldKeepLoading,
    isBuffering: isBuffering,
    isEnded: isEnded,
    position: isEnded ? value.duration : value.position,
    error: isReady ? null : value.error,
  );

  _updateDurationIfNeeded();
  if (isEnded) stopUpdatePositionTimer();
}