Ejemplo n.º 1
0
        public async void Play()
        {
            try
            {
                var item = _item;

                if (!_playbackManager.CanPlay(item))
                {
                    return;
                }

                if (item.IsVideo && (item.Chapters == null || item.MediaStreams == null))
                {
                    item = await _apiClient.GetItemAsync(item.Id, _apiClient.CurrentUserId);
                }
                else if (item.IsAudio && (item.MediaStreams == null))
                {
                    item = await _apiClient.GetItemAsync(item.Id, _apiClient.CurrentUserId);
                }
                else if (string.IsNullOrEmpty(item.Path))
                {
                    item = await _apiClient.GetItemAsync(item.Id, _apiClient.CurrentUserId);
                }

                await _playbackManager.Play(new PlayOptions(item));
            }
            catch (Exception)
            {
                _presentation.ShowDefaultErrorMessage();
            }
        }
Ejemplo n.º 2
0
        private async void PlayAllFromHere(object commandParameter)
        {
            var itemViewModel = commandParameter as ItemViewModel;

            if (itemViewModel != null)
            {
                try
                {
                    var items = _listItems.SkipWhile(i => i != itemViewModel)
                                .Where(i => _playbackManager.CanPlay(i.Item))
                                .ToList();

                    if (items.Count > 0)
                    {
                        var result = await _apiClient.GetItemsAsync(new ItemQuery
                        {
                            UserId = _apiClient.CurrentUserId,

                            Fields = new[] { ItemFields.Path, ItemFields.Chapters, ItemFields.MediaSources, ItemFields.ParentId },

                            Ids = items.Select(i => i.Item.Id).ToArray()
                        });

                        await _playbackManager.Play(new PlayOptions(result.Items));
                    }
                }
                catch (Exception)
                {
                    _presentationManager.ShowDefaultErrorMessage();
                }
            }
        }