Ejemplo n.º 1
0
        //Sets up the TextBlocks on the page by getting the song information and lyrics from the MusixMatch API
        private async void SetInfoViewModelAsync(String trackId)
        {
            Retriever             retriever = new Retriever();
            MusicFromIdRootObject music     = await retriever.GetMusic(sharedData.CommonTrackId);

            LyricsRootObject lyrics = await retriever.GetLyrics(sharedData.TrackId);

            //Assigning TextBlock text to match song's info
            infoViewModel = new InfoViewModel()
            {
                AlbumName    = music.message.body.track.album_name,
                TrackName    = music.message.body.track.track_name,
                ArtistName   = music.message.body.track.artist_name,
                LyricsString = lyrics.message.body.lyrics.lyrics_body,
            };
            Title.Text     = infoViewModel.TrackName + " by " + infoViewModel.ArtistName;
            AlbumName.Text = "Album: " + infoViewModel.AlbumName;
            Lyrics.Text    = infoViewModel.LyricsString;
            if (Lyrics.Text.Equals(""))
            {
                Lyrics.Text = "No lyrics available";
            }
            //Links to YT and Spotify
            YouTubeButton.NavigateUri = new Uri("https://www.youtube.com/results?search_query=" + Title.Text);
            SpotifyButton.NavigateUri = new Uri("https://open.spotify.com/search/results/" + Title.Text);
        }
Ejemplo n.º 2
0
        //API call for getting the information on a song such as ablum name using a track id
        public async Task <MusicFromIdRootObject> GetMusic(string trackId)
        {
            HttpClient httpClient = new HttpClient();
            String     apiUrl     = $"https://api.musixmatch.com/ws/1.1/track.get?commontrack_id={trackId}&apikey={musixMatchKey}";

            string responseString = await httpClient.GetStringAsync(apiUrl);

            MusicFromIdRootObject results = JsonConvert.DeserializeObject <MusicFromIdRootObject>(responseString);

            return(results);
        }