예제 #1
0
 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),
     };
 }
예제 #2
0
        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)
            };
        }
예제 #3
0
 public IObservable <int> BufferingProgress()
 {
     return(playerController.BufferingProgress());
 }