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(); * } * } */ }); }
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; } }