protected void OnBufferingProgressUpdated(object sender, BufferingProgressUpdatedEventArgs e) { if (e.Progress == 1.0) { switch (_player.State) { case PlaybackState.Paused: Controller.CurrentState = MediaElementState.Paused; break; case PlaybackState.Playing: Controller.CurrentState = MediaElementState.Playing; break; case PlaybackState.Stopped: Controller.CurrentState = MediaElementState.Stopped; break; } } else if (Controller.CurrentState != MediaElementState.Buffering && e.Progress >= 0) { Controller.CurrentState = MediaElementState.Buffering; } Controller.BufferingProgress = e.Progress; }
void OnUpdateBufferingProgress(object sender, BufferingProgressUpdatedEventArgs e) { if (!IsBuffering && e.Progress >= 0) { IsBuffering = true; BufferingStarted?.Invoke(this, EventArgs.Empty); } else if (IsBuffering && e.Progress == 1.0) { IsBuffering = false; BufferingCompleted?.Invoke(this, EventArgs.Empty); } BufferingProgress = e.Progress; BufferingProgressUpdated?.Invoke(this, new BufferingProgressUpdatedEventArgs { Progress = BufferingProgress }); }