private void PlaySoundExecute(StorySong storySong) { if (storySong != null) { _audioManager.Play(storySong); } }
private MPNowPlayingInfo CreateInfo(StorySong item) { var newInfo = new MPNowPlayingInfo(); newInfo.Artwork = artwork; newInfo.Title = item.Name; newInfo.AssetUrl = NSUrl.FromString(item.ImageUri.OriginalString); return(newInfo); }
public async Task <List <StorySong> > LoadStoriesAsync() { const string LIST_STORIES_URL = "https://kazky.suspilne.media/list"; var list = new List <StorySong>(); try { var content = await _httpClient.GetStringAsync(LIST_STORIES_URL); var parser = new HtmlParser(); var document = parser.Parse(content); var blocks = document.QuerySelectorAll("a.tales-list__tale").OfType <IHtmlAnchorElement>().ToList(); foreach (var block in blocks) { var storySongItem = new StorySong(); storySongItem.DetailsUri = new Uri(BASE_URI, block.PathName); await GetSongUriAsync(storySongItem); var caption = block.QuerySelector("div.tales-list__tale__tale-caption"); storySongItem.Name = caption?.TextContent?.Trim() ?? string.Empty; var author = block.QuerySelector("div.tales-list__tale__tale-time"); storySongItem.Author = author?.TextContent?.Trim() ?? string.Empty; var image = block.QuerySelector("img") as IHtmlImageElement; var imageUrl = image?.Source; if (!string.IsNullOrEmpty(imageUrl)) { storySongItem.ImageUri = new Uri(imageUrl); if (imageUrl.StartsWith("", StringComparison.OrdinalIgnoreCase)) { var relative = imageUrl.Substring("about:///".Length); storySongItem.ImageUri = new Uri(BASE_URI, relative); } } list.Add(storySongItem); } } catch (Exception ex) { Debug.WriteLine(ex); } return(list); }
private void UpdateNowPlaying(StorySong item) { var newInfo = CreateInfo(item); UpdateInfo(newInfo); if (artworkUrl != item.ImageUri.OriginalString) { artworkUrl = item.ImageUri.OriginalString; artwork = null; ImageService.Instance.LoadUrl(item.ImageUri.OriginalString).AsUIImageAsync().ContinueWith((task) => { artwork = new MPMediaItemArtwork(task.Result); newInfo.Artwork = artwork; UpdateInfo(newInfo); }); } }
private async Task GetSongUriAsync(StorySong item) { var content = await _httpClient.GetStringAsync(item.DetailsUri); var parser = new HtmlParser(); var document = parser.Parse(content); var audioBlock = document.QuerySelector("div.player_wrapper")?.QuerySelector("source") as IHtmlSourceElement; if (audioBlock != null) { item.SongUri = new Uri(audioBlock.Source); if (audioBlock.Source.StartsWith("about:///", StringComparison.OrdinalIgnoreCase)) { var relative = audioBlock.Source.Substring("about:///".Length); item.SongUri = new Uri(BASE_URI, relative); } } }
public void Play(StorySong song) { _currentIndex = _items.IndexOf(song); Play(_currentIndex); }