Exemplo n.º 1
0
        private async Task PlayVideo(BaseItemDto item, bool isResume = false)
        {
            if (item.IsAudio)
            {
                var playlistItem = await item.ToPlaylistItem(ApiClient, _playbackManager);
                Messenger.Default.Send(new NotificationMessage<List<PlaylistItem>>(new List<PlaylistItem> { playlistItem }, Constants.Messages.SetPlaylistAsMsg));
                return;
            }

            Log.Info("Playing {0} [{1}]", item.Type, item.Name);
            if (!TrialHelper.Current.CanPlayVideo(item.Id))
            {
                TrialHelper.Current.ShowTrialMessage(AppResources.TrialVideoMessage);
            }
            else
            {
                if (item.IsPlaceHolder.HasValue && item.IsPlaceHolder.Value)
                {
                    MessageBox.Show(AppResources.MessagePlaceholder, string.Empty, MessageBoxButton.OK);
                    return;
                }
                if (SimpleIoc.Default.GetInstance<VideoPlayerViewModel>() != null && item.LocationType != LocationType.Virtual)
                {
                    if (item.UserData != null)
                    {
                        Messenger.Default.Send(new VideoMessage(item, isResume, PlayerSourceType.Video, item.UserData.PlaybackPositionTicks));
                    }
                    else
                    {
                        Messenger.Default.Send(new VideoMessage(item, isResume, PlayerSourceType.Video));
                    }

                    TrialHelper.Current.SetNewVideoItem(item.Id);
                    NavigationService.NavigateTo(string.Format(Constants.Pages.VideoPlayerView, item.Id, item.Type));
                }
            }

        }