private void OnProgressTimer(object state) { if (IsPlaying && MediaPlayer.LiveStreamPosition != null) { var position = MediaPlayer.LiveStreamPosition; var progressResponseModel = new ProgressResponseModel(position.Current, position.Duration); MediaPlayerViewModel.ProgressResponse = progressResponseModel; } _progressTimer.Change(ProgressTimerStep, Timeout.Infinite); }
private void OnProgressResponseChanged(ProgressResponseModel progressResponseModel) { if (_isProgressPaused) { return; } Progress = (int)(100 * ((double)progressResponseModel.Current / progressResponseModel.Duration)); Duration = progressResponseModel.Duration; // TODO: Crutch for possible 0 current position value on MediaPlayer GetLiveStreamPosition call. if (progressResponseModel.Current != 0) { RaisePropertyChanged(() => Progress); } StopSeekCommand.RaiseCanExecuteChanged(); }