我正在为 Android 制作音乐播放器,我想为用户提供从 last.fm 获取歌曲专辑封面的功能。
我也有我的 API 密钥。只需要帮助从 Last.fm 检索图像。
获取图像网址的任何帮助也将不胜感激。
提前致谢。
PS:有关我的音乐播放器的更多信息,请查看以下链接 https://plus.google.com/u/0/communities/115046175816530349000
我正在为 Android 制作音乐播放器,我想为用户提供从 last.fm 获取歌曲专辑封面的功能。
我也有我的 API 密钥。只需要帮助从 Last.fm 检索图像。
获取图像网址的任何帮助也将不胜感激。
提前致谢。
PS:有关我的音乐播放器的更多信息,请查看以下链接 https://plus.google.com/u/0/communities/115046175816530349000
我在下面找到了解决方案检查
添加下面的 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解析教程
请参阅 Last.fm Web 服务文档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>