public static string GetPreferredAudioLanguage(this IPlayableContent playableContent, string defaultAudioLanguage) { if (playableContent.ContentType != ContentType.Channel || playableContent.Name is ChannelNames.Wif or ChannelNames.Tracker or ChannelNames.Data or ChannelNames.PitLane) { return(!string.IsNullOrWhiteSpace(defaultAudioLanguage) ? defaultAudioLanguage : LanguageCodes.English); } return(LanguageCodes.Onboard); }
public async Task <string> GetTokenisedUrlAsync(string token, IPlayableContent playableContent) { _logger.Info($"Getting tokenised URL for content-type '{playableContent.ContentType}' and content-URL '{playableContent.ContentUrl}' using token '{token}'..."); return(playableContent.ContentType switch { ContentType.Channel => (await _client.GetTokenisedUrlForChannelAsync(token, playableContent.ContentUrl)).Url, ContentType.Asset => (await _client.GetTokenisedUrlForAssetAsync(token, playableContent.ContentUrl)).Objects.First().TokenisedUrl.Url, ContentType.Backup => (await _client.GetBackupStream()).StreamManifest, _ => throw new ArgumentException($"Could not generate tokenised URL for unsupported content-type '{playableContent.ContentType}'.", nameof(playableContent)) });
public static IEnumerable <string> GetAudioLanguages(this IPlayableContent playableContent, string defaultAudioLanguage) { var languageCode = playableContent.GetPreferredAudioLanguage(defaultAudioLanguage); var languageCodes = new List <string> { languageCode }; var languageCodeShort = LanguageCodes.GetTwoLetterCode(languageCode); if (!string.IsNullOrWhiteSpace(languageCodeShort)) { languageCodes.Add(languageCodeShort); } if (languageCode != LanguageCodes.English) { languageCodes.Add(LanguageCodes.English); languageCodes.Add(LanguageCodes.GetTwoLetterCode(LanguageCodes.English)); } return(languageCodes); }
public async Task <string> GetTokenisedUrlAsync(string subscriptionToken, string streamType, IPlayableContent playableContent) { _logger.Info($"Getting tokenised URL for content-type '{playableContent.ContentType}' and content-URL '{playableContent.ContentUrl}'..."); return(playableContent.ContentType == ContentType.Backup ? (await GetBackupStream()).StreamManifest : (await QueryTokenisedUrlAsync(subscriptionToken, streamType, playableContent.ContentUrl)).ResultObj.Url); }