获取专辑封面,如JPEG,PNG等

时间:2010-12-21 15:23:11

标签: c# java c++ amazon last.fm

有人能告诉我是否有任何简单的Web API将专辑封面作为图片返回,就像谷歌静态地图API(Google Static Map API一样??我听说过亚马逊和Last.fm的API,但是找不到任何代码(除了像PHP / Perl / Ruby等网络语言)。此外,它们是REST API。 任何帮助将不胜感激。

是否存在简单的URL(GET)查询,还是只有REST / XML方法?

2 个答案:

答案 0 :(得分:3)

用手做起来应该不是很难。 Album.getInfo方法的last.fm api规范非常简单,而且它是REST api的事实使它更简单。只需从服务器获取xml响应,解析它并获取图像的URL。我刚才写了这段代码,但它应该仍然有效:

            String request = "http://ws.audioscrobbler.com/2.0/?method=" + method +
                    "&api_key="+apiKey;
            request += "&artist=" + artist.replaceAll(" ", "%20");
            if (method.equals("album.getinfo")) request += "&album=" + album.replaceAll(" ", "%20");
            URL url = new URL(request);
            InputStream is = url.openStream();
            DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
            Document doc = db.parse(is);

            NodeList nl = doc.getElementsByTagName("image");
            for (int i = 0; i < nl.getLength(); i++) {
                Node n = nl.item(i);
                if (n.getAttributes().item(0).getNodeValue().equals(imageSize)) {
                    Node fc = n.getFirstChild();
                    if (fc == null) return null;
                    String imgUrl = fc.getNodeValue();
                    if (imgUrl.trim().length() == 0) return null;
                    return new ImageIcon(new URL(imgUrl));
                }
            }

答案 1 :(得分:0)