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);
        }
Esempio n. 2
0
        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();
        }