private void ConnectPlayerControllerObservables() { _playerControllerConnections = new CompositeDisposable { playerController.StateChanged().Subscribe(SetState, _playerStateSubject.OnCompleted, _syncCtx), playerController.PlaybackError().Subscribe(_playerErrorSubject), playerController.BufferingProgress().Subscribe(_playerBufferingSubject), playerController.TimeUpdated().Subscribe(SetClock, _syncCtx), }; }
private void CreatePlayerController() { if (playerWindow == null) { playerWindow = WindowUtils.CreateElmSharpWindow(); } var player = new EsPlayer(playerWindow); playerController = new PlayerController(player, drmManager); subscriptions = new CompositeDisposable { playerController.StateChanged() .Subscribe(state => { State = state; stateChangedSubject.OnNext(state); }, () => stateChangedSubject.OnCompleted(), SynchronizationContext.Current), playerController.PlaybackError() .Subscribe(playbackErrorSubject.OnNext, SynchronizationContext.Current), playerController.BufferingProgress() .Subscribe(bufferingProgressSubject.OnNext, SynchronizationContext.Current) }; }
public IObservable <int> BufferingProgress() { return(playerController.BufferingProgress()); }