private void UnsubscribePlayerEvents(LiteTubePlayer tubePlayer) { tubePlayer.MediaOpened -= PlayerOnMediaOpened; tubePlayer.CurrentStateChanged -= OnCurrentStateChanged; tubePlayer.IsFullScreenChanged -= PlayerIsFullScreenChanged; tubePlayer.IsInteractiveChanged -= OnInteractiveChanged; }
private void SubscribePlayerEvents(LiteTubePlayer tubePlayer) { tubePlayer.IsFullScreenChanged += PlayerIsFullScreenChanged; tubePlayer.MediaOpened += PlayerOnMediaOpened; tubePlayer.MediaFailed += TubePlayerOnMediaFailed; tubePlayer.CurrentStateChanged += OnCurrentStateChanged; tubePlayer.IsInteractiveChanged += OnInteractiveChanged; tubePlayer.Paused += Player_Paused; }
private void UnsubscribePlayerEvents(LiteTubePlayer tubePlayer) { tubePlayer.MediaOpened -= PlayerOnMediaOpened; tubePlayer.MediaEnded -= OnMediaEnded; tubePlayer.CurrentStateChanged -= OnCurrentStateChanged; tubePlayer.IsFullScreenChanged -= PlayerIsFullScreenChanged; tubePlayer.IsSkipNextChanged -= OnSkipNextChanged; tubePlayer.IsSkipPreviousChanged -= OnSkipPreviousChanged; }
public static void PlayerIsFullScreenChanged(PhoneApplicationPage page, LiteTubePlayer player) { //_isFullScreen = player.IsFullScreen; if (player.IsFullScreen) { page.SupportedOrientations = SupportedPageOrientation.Landscape; page.Orientation = PageOrientation.LandscapeLeft; return; } page.SupportedOrientations = SupportedPageOrientation.Portrait; page.Orientation = PageOrientation.Portrait; }
private void RestorePlayer() { var viewModel = DataContext as VideoPageViewModel; if (viewModel == null) { return; } //новый player = new LiteTubePlayer { IsFullScreenVisible = true, IsFullScreenEnabled = true, VerticalAlignment = VerticalAlignment.Center, IsSkipAheadVisible = true, IsSkipBackVisible = true, SkipAheadInterval = TimeSpan.FromSeconds(10), SkipBackInterval = TimeSpan.FromSeconds(10), AllowMediaStartingDeferrals = false, AutoPlay = _autoPlay, VideoTitle = viewModel.Title, ChannelTitle = viewModel.ChannelTitle, RelatedItems = viewModel.RelatedVideosViewModel.Items, ItemClickCommand = viewModel.RelatedVideosViewModel.ItemClickCommand, LoadMoreCommand = viewModel.RelatedVideosViewModel.LoadMoreCommand, VideoQualityItems = viewModel.VideoQualities, SelectedVideoQualityItem = viewModel.SelectedVideoQualityItem, IsLive = viewModel.IsLive, DataContext = DataContext }; var binding = new Binding { Source = viewModel, Path = new PropertyPath("VideoUri") }; player.SetBinding(LiteTubePlayer.SourceProperty, binding); var binding1 = new Binding { Source = viewModel, Path = new PropertyPath("SelectedVideoQualityItem"), Mode = BindingMode.TwoWay }; player.SetBinding(LiteTubePlayer.SelectedVideoQualityItemProperty, binding1); SubscribePlayerEvents(player); if (_playerState != null) { player.RestoreMediaState(_playerState); } var oldPlayer = playerBg.Children.FirstOrDefault(x => x is LiteTubePlayer); if (oldPlayer != null) { playerBg.Children.Remove(oldPlayer); } playerBg.Children.Add(player); if (_isFullScreen) { SetPlayerFullScreenState(); } else { SetPlayerNormalState(); } }
private void RestorePlayer() { var viewModel = DataContext as PlaylistVideoPageViewModel; if (viewModel == null) { return; } //новый player = new LiteTubePlayer { Name = "player", IsFullScreenVisible = true, IsFullScreenEnabled = true, VerticalAlignment = VerticalAlignment.Center, IsSkipAheadVisible = true, IsSkipBackVisible = true, SkipAheadInterval = TimeSpan.FromSeconds(10), SkipBackInterval = TimeSpan.FromSeconds(10), IsSkipNextVisible = true, IsSkipPreviousVisible = true, AllowMediaStartingDeferrals = false, AutoPlay = _autoPlay, Position = TimeSpan.FromSeconds(0), IsLive = viewModel.VideoViewModel.IsLive }; var binding = new Binding { Source = viewModel, Path = new PropertyPath("VideoViewModel.VideoUri") }; player.SetBinding(LiteTubePlayer.SourceProperty, binding); binding = new Binding { Source = viewModel, Path = new PropertyPath("VideoViewModel.Title") }; player.SetBinding(LiteTubePlayer.VideoTitleProperty, binding); binding = new Binding { Source = viewModel, Path = new PropertyPath("VideoViewModel.ChannelTitle") }; player.SetBinding(LiteTubePlayer.ChannelTitleProperty, binding); binding = new Binding { Source = viewModel, Path = new PropertyPath("PlaylistVideosViewModel.Items") }; player.SetBinding(LiteTubePlayer.RelatedItemsProperty, binding); binding = new Binding { Source = viewModel, Path = new PropertyPath("PlaylistVideosViewModel.ItemClickCommand") }; player.SetBinding(LiteTubePlayer.ItemClickCommandProperty, binding); binding = new Binding { Source = viewModel, Path = new PropertyPath("PlaylistVideosViewModel.LoadMoreCommand") }; player.SetBinding(LiteTubePlayer.LoadMoreCommandProperty, binding); binding = new Binding { Source = viewModel, Path = new PropertyPath("VideoViewModel.ImagePath") }; player.SetBinding(LiteTubePlayer.PosterSourceProperty, binding); binding = new Binding { Source = viewModel, Path = new PropertyPath("VideoViewModel.VideoQualities") }; player.SetBinding(LiteTubePlayer.VideoQualityItemsProperty, binding); var binding1 = new Binding { Source = viewModel, Path = new PropertyPath("VideoViewModel.SelectedVideoQualityItem"), Mode = BindingMode.TwoWay }; player.SetBinding(LiteTubePlayer.SelectedVideoQualityItemProperty, binding1); playerBg.Children.Clear(); playerBg.Children.Add(player); SubscribePlayerEvents(player); player.RestoreMediaState(_playerState); if (_isFullScreen) { SetPlayerFullScreenState(); } else { SetPlayerNormalState(); } }