public QueueAddItemCommand( HohoemaPlaylist hohoemaPlaylist, PrimaryViewPlayerManager primaryViewPlayerManager, ScondaryViewPlayerManager scondaryViewPlayerManager ) { _hohoemaPlaylist = hohoemaPlaylist; _primaryViewPlayerManager = primaryViewPlayerManager; _scondaryViewPlayerManager = scondaryViewPlayerManager; }
public VideoPlayRequestBridgeToPlayer( ScondaryViewPlayerManager playerViewManager, PrimaryViewPlayerManager primaryViewPlayerManager, IEventAggregator eventAggregator, IScheduler scheduler ) { _secondaryPlayerManager = playerViewManager; _primaryViewPlayerManager = primaryViewPlayerManager; _eventAggregator = eventAggregator; _scheduler = scheduler; DisplayMode = ReadDisplayMode(); _eventAggregator.GetEvent <Services.Player.PlayerPlayVideoRequest>() .Subscribe(async e => { var pageName = nameof(Views.VideoPlayerPage); var parameters = new NavigationParameters("id=" + e.VideoId); await PlayWithCurrentView(DisplayMode, pageName, parameters); }); _eventAggregator.GetEvent <Services.Player.PlayerPlayLiveRequest>() .Subscribe(async e => { var pageName = nameof(Views.LivePlayerPage); var parameters = new NavigationParameters("id=" + e.LiveId); await PlayWithCurrentView(DisplayMode, pageName, parameters); }); _eventAggregator.GetEvent <ChangePlayerDisplayViewRequestEvent>() .Subscribe(async() => { var mode = DisplayMode == PlayerDisplayView.PrimaryView ? PlayerDisplayView.SecondaryView : PlayerDisplayView.PrimaryView; if (_lastNavigatedPageName != null && _lastNavigatedParameters != null) { await PlayWithCurrentView(mode, _lastNavigatedPageName, _lastNavigatedParameters); } DisplayMode = mode; SaveDisplayMode(); } , ThreadOption.UIThread, true); _dispatcher = Windows.UI.Core.CoreWindow.GetForCurrentThread().Dispatcher; }
public VideoCacheResumingObserver( IScheduler scheduler, NiconicoSession niconicoSession, ScondaryViewPlayerManager playerViewManager, VideoCacheManager videoCacheManager ) { _scheduler = scheduler; _niconicoSession = niconicoSession; _playerViewManager = playerViewManager; _videoCacheManager = videoCacheManager; // 一般会員は再生とキャッシュDLを1ラインしか許容していないため // 再生終了時にキャッシュダウンロードの再開を行う必要がある // PlayerViewManager.NowPlaying はSecondaryViewでの再生時にFalseを示してしまうため // IsPlayerShowWithSecondaryViewを使ってセカンダリビューでの再生中を検出している //new[] //{ // // PlayerViewManager.ObserveProperty(x => x.NowPlaying).Select(x => !x), // _playerViewManager.ObserveProperty(x => x.IsPlayerShowWithPrimaryView).Select(x => !x), // _playerViewManager.ObserveProperty(x => x.IsPlayerShowWithSecondaryView).Select(x => !x), // _niconicoSession.ObserveProperty(x => x.IsPremiumAccount).Select(x => !x) //} //.CombineLatestValuesAreAllTrue() //.Throttle(TimeSpan.FromSeconds(1)) //.Subscribe(nowResumingCacheDL => //{ // _scheduler.Schedule(() => // { // if (nowResumingCacheDL) // { // _ = _videoCacheManager.ResumeCacheDownload(); // // TODO: キャッシュDL再開した場合の通知 // } // }); //}) //.AddTo(_disposables); }
public ShowPrimaryViewCommand(ScondaryViewPlayerManager scondaryViewPlayerManager) { _scondaryViewPlayerManager = scondaryViewPlayerManager; }