private async Task <PlayableItem> GetPlayableItem(BaseItemDto item, long?startTimeTicks, CancellationToken cancellationToken) { IIsoMount mountedIso = null; if (item.VideoType.HasValue && item.VideoType.Value == VideoType.Iso && item.IsoType.HasValue && _isoManager.CanMount(item.Path)) { try { mountedIso = await _isoManager.Mount(item.Path, cancellationToken); } catch (Exception ex) { _logger.ErrorException("Error mounting iso {0}", ex, item.Path); } } var apiClient = _connectionManager.GetApiClient(item); var mediaSources = item.MediaSources; try { var result = await apiClient.GetLiveMediaInfo(item.Id, apiClient.CurrentUserId); mediaSources = result.MediaSources; } catch { } return(PlayablePathBuilder.GetPlayableItem(item, mediaSources, mountedIso, apiClient, startTimeTicks, _config.Configuration.MaxStreamingBitrate)); }
private async Task <PlayableItem> GetPlayableItem(BaseItemDto item, CancellationToken cancellationToken) { IIsoMount mountedIso = null; if (item.VideoType.HasValue && item.VideoType.Value == VideoType.Iso && item.IsoType.HasValue && _isoManager.CanMount(item.Path)) { try { mountedIso = await _isoManager.Mount(item.Path, cancellationToken); } catch (Exception ex) { _logger.ErrorException("Error mounting iso {0}", ex, item.Path); } } return(new PlayableItem { OriginalItem = item, PlayablePath = PlayablePathBuilder.GetPlayablePath(item, mountedIso, _apiClient) }); }