Cómo obtener la carátula del álbum de last.fm Android
-
26-12-2019 - |
Pregunta
Estoy creando un reproductor de música para Android. Quiero ofrecer una función para que los usuarios obtengan la carátula del álbum de una canción de last.fm.
También tengo mi clave API.Solo necesito ayuda para recuperar la imagen de Last.fm.
También se agradecería cualquier ayuda para obtener la URL de la imagen.
Gracias de antemano.
PD:Para obtener más información sobre mi reproductor de música, consulte el siguiente enlacehttps://plus.google.com/u/0/communities/115046175816530349000
Solución
Encontré un cheque de solución a continuación
Añadir la siguiente cargadora de asintsetw
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;
}
}
Llámalo según lo siguió:
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();
Necesitas 2 clases: 1. XMLPARSER 2. Docelement Ambos estarán disponibles en el enlace a continuación. Tutorial de análisis XML
Otros consejos
Consulte los documentos de servicios web de Last.fm para album.getInfo
: http://www.last.fm/api/show/album.getInfo
A continuación se muestra una respuesta de ejemplo, en la que puede ver fácilmente cómo obtener la URL de la imagen de portada:
<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>