示例#1
0
        public async Task OpenContent(PlaylistItem item)
        {
            var payload = new SecondaryViewNavigatePayload()
            {
                ContentId   = item.ContentId,
                ContentType = item.Type.ToString(),
                Title       = item.Title
            };

            var    pageType  = item.Type == PlaylistItemType.Video ? nameof(Views.VideoPlayerPage) : nameof(Views.LivePlayerPage);
            string parameter = null;

            if (item.Type == PlaylistItemType.Video)
            {
                parameter = new VideoPlayPayload()
                {
                    VideoId = item.ContentId
                }.ToParameterString();
            }
            else
            {
                parameter = new Models.Live.LiveVideoPagePayload(item.ContentId)
                {
                    LiveTitle = item.Title
                }
                .ToParameterString();
            }



            await NavigatingSecondaryViewAsync(pageType, parameter);

            await CoreAppView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async() =>
            {
                AppView.Title = !string.IsNullOrEmpty(item?.Title) ? item.Title : "Hohoema";


                // Note: Can not complete automatically enter FullScreen on secondary window.
                // AppView.TryEnterFullScreenMode will return 'false'
                // how fix it ?

                /*
                 * await Task.Delay(1000);
                 *
                 * if (Helpers.DeviceTypeHelper.IsMobile)
                 * {
                 *  AppView.TryEnterFullScreenMode();
                 *
                 *  // Note: Mobile is not support Secondary View.
                 * }
                 * else if (Helpers.DeviceTypeHelper.IsDesktop)
                 * {
                 *  if (AppView.AdjacentToLeftDisplayEdge && AppView.AdjacentToRightDisplayEdge)
                 *  {
                 *      AppView.TryEnterFullScreenMode();
                 *  }
                 * }
                 */
            });
        }
示例#2
0
        public async Task PlayWithCurrentPlayerView(PlaylistItem item)
        {
            using (await NowPlayingLock.LockAsync())
            {
                var    pageType  = item.Type == PlaylistItemType.Video ? nameof(Views.VideoPlayerPage) : nameof(Views.LivePlayerPage);
                string parameter = null;
                switch (item.Type)
                {
                case PlaylistItemType.Video:
                    parameter = new VideoPlayPayload()
                    {
                        VideoId = item.ContentId
                    }
                    .ToParameterString();

                    break;

                case PlaylistItemType.Live:
                    parameter = new Models.Live.LiveVideoPagePayload(item.ContentId)
                    {
                        LiveTitle = item.Title
                    }
                    .ToParameterString();

                    break;
                }

                if (parameter == null)
                {
                    throw new ArgumentException("PlayerViewManager failed player frame navigation");
                }

                if (PlayerViewMode == PlayerViewMode.PrimaryView)
                {
                    Debug.WriteLine("Play with Primary : " + parameter);

                    PrimaryViewScheduler.Schedule(() =>
                    {
                        PrimaryViewPlayerNavigationService.Navigate(pageType, parameter);
                        //                    _ = ApplicationViewSwitcher.TryShowAsStandaloneAsync(MainViewId);
                    });
                }

                if (PlayerViewMode == PlayerViewMode.SecondaryView)
                {
                    Debug.WriteLine("Play with Secondary : " + parameter);

                    // サブウィンドウをアクティベートして、サブウィンドウにPlayerページナビゲーションを飛ばす
                    await GetEnsureSecondaryView();

                    SecondaryViewScheduler.Schedule(() =>
                    {
                        if (SecondaryViewPlayerNavigationService.Navigate(pageType, parameter))
                        {
                            SecondaryAppView.Title = !string.IsNullOrEmpty(item?.Title) ? item.Title : "Hohoema";
                        }
                        else
                        {
                            SecondaryAppView.Title = "Hohoema!";
                        }
                    });
                }

                _CurrentPlayItem = item;
            }
        }