Как получить обложку альбома от last.fm Android

Я делаю музыкальный проигрыватель для Android, я хочу предоставить пользователям возможность получать обложки альбомов песен с last.fm.

У меня тоже есть ключ API. Просто нужна помощь для получения изображения с Last.fm.

Любая помощь в получении URL-адреса изображения также будет оценена.

Заранее спасибо.

PS . Для получения дополнительной информации о моем музыкальном проигрывателе перейдите по ссылке ниже https://plus.google.com/u/0/communities/115046175816530349000


person Akshay Chordiya    schedule 14.04.2014    source источник


Ответы (2)


Я нашел проверку решения ниже

Добавьте приведенный ниже загрузчик AsyncTask

public class RetrieveFeedTask extends AsyncTask<String, Void, String> {

    protected String doInBackground(String... urls) {
        String albumArtUrl = null;
        try {
            XMLParser parser = new XMLParser();
            String xml = parser.getXmlFromUrl(urls[0]); // getting XML from URL
            Document doc = parser.getDomElement(xml);
            NodeList nl = doc.getElementsByTagName("image");
            for (int i = 0; i < nl.getLength(); i++) {
                Element e = (Element) nl.item(i);
                Log.d(LOG_TAG,"Size = " + e.getAttribute("size") + " = " + parser.getElementValue(e));
                if(e.getAttribute("size").contentEquals("medium")){
                    albumArtUrl = parser.getElementValue(e);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return albumArtUrl;
    }
}

Назовите его следующим образом:

StringBuilder stringBuilder = new StringBuilder("http://ws.audioscrobbler.com/2.0/");
stringBuilder.append("?method=album.getinfo");
stringBuilder.append("&api_key=");
stringBuilder.append("YOUR_LAST_FM_API_KEY");
stringBuilder.append("&artist=" + URLEncoder.encode("ARTIST_NAME_HERE", "UTF-8"));
stringBuilder.append("&album=" + URLEncoder.encode("ALBUM_NAME_HERE", "UTF-8"));
url = new RetrieveFeedTask().execute(stringBuilder.toString()).get();

Вам нужно 2 класса: 1. XmlParser 2. DocElement Оба будут доступны по ссылке ниже. Руководство по анализу XML

person Akshay Chordiya    schedule 28.06.2015
comment
Я слышал, что мы не можем использовать API last.fm для загрузки обложек для общего пользования... не так ли? - person codevscolor; 22.03.2016
comment
Я не уверен в этом. - person Akshay Chordiya; 22.03.2016
comment
@NandanKaushik, это правда, на самом деле я отправил электронное письмо в службу поддержки last.fm, которая подтвердила это, поэтому все приложения в Google Play, использующие last.fm для обложки альбома, не должны этого делать - если только они не дадут на это согласие, однако я попросил согласия и был сказал, что я не должен использовать для любого приложения. - person Mark Keen; 08.11.2016
comment
@Mark Вы знаете, почему они сделали все API для общественного пользования? - person codevscolor; 29.12.2016
comment
@NandanKaushik С их веб-сайта - The Agreement covers only Your use of Last.fm Data. You must not sub-license the Last.fm Data to others. - так что они общедоступны, но только для «личного» использования, обмен любыми данными считается сублицензией. - person Mark Keen; 29.12.2016

См. документацию веб-служб Last.fm для album.getInfo: http://www.last.fm/api/show/album.getInfo
Вот пример ответа, из которого легко понять, как получить URL-адрес обложки:

<album>
  <name>Believe</name>
  <artist>Cher</artist>
  <id>2026126</id>
  <mbid>61bf0388-b8a9-48f4-81d1-7eb02706dfb0</mbid>
  <url>http://www.last.fm/music/Cher/Believe</url>
  <releasedate>6 Apr 1999, 00:00</releasedate>
  <image size="small">...</image>
  <image size="medium">...</image>
  <image size="large">...</image>
  <listeners>47602</listeners>
  <playcount>212991</playcount>
  <toptags>
    <tag>
      <name>pop</name>
      <url>http://www.last.fm/tag/pop</url>
    </tag>
    ...
  </toptags>
  <tracks>
    <track rank="1">
      <name>Believe</name>
      <duration>239</duration>
      <mbid/>
      <url>http://www.last.fm/music/Cher/_/Believe</url>
      <streamable fulltrack="0">1</streamable>
      <artist>
        <name>Cher</name>
        <mbid>bfcc6d75-a6a5-4bc6-8282-47aec8531818</mbid>
        <url>http://www.last.fm/music/Cher</url>
      </artist>
    </track>
    ...
  </tracks>
</album>
person MarcoS    schedule 14.04.2014
comment
Я разобрался с этим в Android. - person Akshay Chordiya; 15.04.2014
comment
Что ты имеешь в виду? Какой услугой вы пользовались? Почему бы вам не поделиться своим решением здесь, на SO? :-) - person MarcoS; 15.04.2014
comment
Я только что завершил это. На пути к добавлению решения здесь - person Akshay Chordiya; 15.04.2014