Ejemplo n.º 1
0
        public PlayerView()
        {
            InitializeComponent();

            NavigationPage.SetHasNavigationBar(this, false);

            Player = DependencyService.Get <IPlayerService>(DependencyFetchTarget.NewInstance);

            Player.StateChanged()
            .ObserveOn(SynchronizationContext.Current)
            .Subscribe(OnPlayerStateChanged, OnPlayerCompleted);

            Player.PlaybackError()
            .ObserveOn(SynchronizationContext.Current)
            .Subscribe(async message => await OnPlaybackError(message));

            Player.BufferingProgress()
            .ObserveOn(SynchronizationContext.Current)
            .Subscribe(OnBufferingProgress);

            PlayButton.Clicked += (s, e) => { Play(); };

            PropertyChanged += PlayerViewPropertyChanged;

            _seekLogic = new SeekLogic(this);
        }
Ejemplo n.º 2
0
 protected override void OnCreate()
 {
     _uiContext = SynchronizationContext.Current;
     OpenGLLoggerManager.Configure(_uiContext);
     _seekLogic = new SeekLogic(this);
     DllImports.Create();
     InitMenu();
 }
Ejemplo n.º 3
0
 public void SetSeekPreviewReader(StoryboardReader storyboardReader, SeekLogic seekLogic)
 {
     _seekPreviewReader?.Dispose();
     _seekPreviewReader         = storyboardReader;
     seekLogic.StoryboardReader = _seekPreviewReader;
     DllImports.SetSeekPreviewCallback(_getSeekPreviewStoryboardDelegate);
     _seekLogic = seekLogic;
 }
Ejemplo n.º 4
0
 public JuvoPlayerModule(ReactContext reactContext, IDeepLinkSender deepLinkSender)
     : base(reactContext)
 {
     seekLogic           = new SeekLogic(this);
     this.deepLinkSender = deepLinkSender;
     seekCompletedSub    = seekLogic.SeekCompleted().Subscribe(message =>
     {
         var param = new JObject();
         SendEvent("onSeekCompleted", param);
     });
 }
Ejemplo n.º 5
0
        public JuvoPlayerModule(ReactContext reactContext, IDeepLinkSender deepLinkSender,
                                SynchronizationContext mainSynchronizationContext)
            : base(reactContext)
        {
            seekLogic                       = new SeekLogic(this);
            this.deepLinkSender             = deepLinkSender;
            this.mainSynchronizationContext = mainSynchronizationContext;
            seekCompletedSub                = seekLogic.SeekCompleted().Subscribe(message =>
            {
                var param = new JObject();
                SendEvent("onSeekCompleted", param);
            });

            playbackTimer = new Timer(
                callback: new TimerCallback(UpdatePlayTime),
                state: seekLogic.CurrentPositionUI,
                Timeout.Infinite, Timeout.Infinite);
        }
Ejemplo n.º 6
0
        public PlayerView()
        {
            InitializeComponent();

            NavigationPage.SetHasNavigationBar(this, false);

            Player = DependencyService.Get <IPlayerService>(DependencyFetchTarget.NewInstance);

            _subscriptions = new CompositeDisposable
            {
                Player.StateChanged()
                .ObserveOn(SynchronizationContext.Current)
                .Subscribe(OnPlayerStateChanged, OnPlayerCompleted),

                Player.PlaybackError()
                .ObserveOn(SynchronizationContext.Current)
                .Subscribe(async message => await OnPlaybackError(message)),

                Player.BufferingProgress()
                .ObserveOn(SynchronizationContext.Current)
                .Subscribe(OnBufferingProgress)
            };

            PlayButton.Clicked += (s, e) => { Play(); };

            Progressbar.PropertyChanged += (sender, args) =>
            {
                if (args.PropertyName == "Progress")
                {
                    UpdateSeekPreviewFramePosition();
                }
            };

            PropertyChanged += PlayerViewPropertyChanged;

            _seekLogic = new SeekLogic(this);
        }
Ejemplo n.º 7
0
 public JuvoPlayerModule(ReactContext reactContext)
     : base(reactContext)
 {
     seekLogic = new SeekLogic(this);
 }